【问题标题】:Widget alignment in kivykivy中的小部件对齐
【发布时间】:2017-02-18 02:19:52
【问题描述】:

我是 kivy 和 python 的新手,我想知道我的代码有什么问题。 我想在同一布局中对齐 Label 小部件和 TextInput 小部件。换句话说,这两个小部件必须从同一个 x 坐标开始!在我的示例中,我在 pos_hint('center_x':0.5) 中设置了相同的 x 坐标,但小部件未对齐。我之前尝试过其他布局类型,但我没有解决这个问题。 有什么建议吗?

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput


class MyWidget(FloatLayout):
    def __init__(self, *args):
        super(MyWidget, self).__init__(*args)

        self.add_widget(Label(text="Hello", size_hint=(None, None), pos_hint={'center_x':0.5, 'center_y':0.5}))
        self.add_widget(TextInput(text="MyText", multiline=False, size_hint=(0.1,0.05), pos_hint={'center_x':0.5, 'center_y':0.4}))


class ex(App):
    def build(self):
        return MyWidget()


if __name__ == '__main__':
    ex().run()

【问题讨论】:

  • 您希望它们彼此相邻吗?

标签: python user-interface layout widget kivy


【解决方案1】:

如果我对你的意思是对的,这就是你想要的。

self.add_widget(Label(text="Hello", size_hint=(None, None), pos_hint={'center_x':0.4, 'center_y':0.5}))
self.add_widget(TextInput(text="MyText", multiline=False, size_hint=(0.1,0.05), pos_hint={'center_x':0.5, 'center_y':0.5}))

我认为你误解了 pos_hint。 center_x: 0.5 表示 x 的中间,所以 center_x: 0.4 表示向左一层。

【讨论】:

  • 感谢您的回答,但我的意思是不同的。在这种情况下,我想将标签“H”的第一个字母与 TextInput 小部件的开始边框对齐。两个小部件坐标相同,但标签的文字似乎“居中”!
猜你喜欢
  • 1970-01-01
  • 2015-09-28
  • 2018-08-03
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 2018-11-08
  • 2020-10-08
  • 2017-05-14
相关资源
最近更新 更多