[解決済み] kivyのFloatLayoutでpos_hintを使用するには?
2022-02-28 09:30:01
質問
私はテストUIでラベルとボタンを整列させようとしています これは私のkvファイルです。
<test>:
Label:
text: "foo"
color: 0,1,0,1
#pos:120,20
pos_hint:{"right":0.1,"top":1}
Label:
text:"boo"
color: 0,0,1,1
#pos:80,20
pos_hint:{"right":0.1,"top":0.5}
Label:
text:"bar"
color: 1,0,0,1
#pos:20,120
pos_hint:{"right":0.1,"top":0.1}
Button:
text:"goo"
size_hint:0.1,0.1
を使用して、ラベル foo、boo、bar を作成することができます。 ポーズ しかし ポイズンヒント は空白の出力を返しますか?
解決方法は?
ラベルのテキストが画面外にある(ラベル自体が透明である)ため、"blank" が出力されています。
-
あなたのレイアウトは
<test>
にはsize_hint
であるため のデフォルトは(1,1)
のサイズになります。Window
(である)。800 x 600
). -
また、ラベルには
size_hint
で、デフォルトはsize
を持つことになります。size [800, 600]
. ラベルのテキストはデフォルトで中央に配置され、その背景は透明になっています。(サイズを視覚的に表現するために、まずボタンで試してみるといいかもしれません) -
このように
テキスト
というラベルは
pos = (0,0)
が画面の中央に表示されます
次に
pos_hint
の外側のものについては、以下の説明は正確ではないかもしれません)。
FloatLayout
):
pos_hint:{"right":v1,"top":v2}
を設定します。
pos
から
(self.parent.right*v1 - self.width, self.parent.top*v2 - self.height)
- を設定することになります。
top
と
right
を指定することで、配置するウィジェットの そのため、ラベルの座標がマイナスになり、テキストが画面に表示されなくなります (左下が
0,0
)
であれば、次のようになります。
pos_hint:{"x":v1,"y":v2}
(あなたの場合、こちらの方が便利かもしれません)、そして
pos_hint:{"center_x":v1,"center_y":v2}
. サイズが見た目に影響することを念頭に置いて、それらがどのように機能するかを理解することができるはずです。
pos
は左下の座標を設定するだけです。この .kv ファイルで遊んでみてください。
#:kivy 1.0.9
<test>:
#size: (500, 500)
#size_hint:(None, None)
canvas:
Color:
rgb: 1,0,0
Rectangle:
size: (5,5)
pos: (0,0)
Widget:
id:wig
pos: (250,250)
canvas:
Color:
rgb: 1,1,1
Rectangle:
size: (5,5)
pos: self.pos
Label:
id: boo
text:"boo"
color: 0,0,1,1
#size_hint:(1,1)
pos_hint:{"center_x":1,"center_y":1}
Label:
id: foo
text: "foo"
color: 0,1,0,1
#size_hint: (.6,.6)
pos_hint:{"x":1,"y":1}
Label:
id: bar
text:"bar"
color: 1,0,0,1
#size:(500,500)
#size_hint:(None, None)
pos_hint:{"right":1,"top":1}
#pos:100, 10
Button:
text:"goo"
size_hint:0.1,0.1
pos:(1,1)
#some debug info, i know the code is ugly
on_press: print self.parent.size,'\n', self.parent.right, self.parent.top, self.parent.x, self.parent.y, self.parent.center_x, self.parent.center_y, "\n","bar_right_top:", bar.pos,"foo_x_y:", foo.pos,"boo_center:", boo.pos, "\nwhite square:", wig.pos, "\n", bar.size, foo.size, boo.size
関連
-
PythonはWordの読み書きの変更操作を実装している
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
Python百行で韓服サークルの画像クロールを実現する
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac