我是python的初学者,尤其是kivy。我在设计 GUI 时遇到了一些小问题。根据页面中的图表(我已附加(,我无法以正确的格式放置标签,文本输入。你可以帮我吗?提前谢谢。
from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem
from kivy.lang import Builder
from kivy.uix.checkbox import CheckBox
from kivy.uix.accordion import Accordion, AccordionItem
from kivy.uix.button import Button
from kivy.app import App
from kivy.uix.textinput import TextInput
Builder.load_string("""
<Test>:
do_default_tab: False
TabbedPanelItem:
text: 'page1'
BoxLayout:
Label:
text: 'label'
Label:
text: 'entry'
TextInput:
text: 'Entry'
TextInput:
text: 'Entry'
CheckBox:
text: 'CheckBox'
Button:
text: 'button'
TabbedPanelItem:
text: 'page2'
BoxLayout:
Label:
text: 'label'
TextInput:
text: 'entry'
Label:
text: 'label'
TextInput:
text: 'entry'
Button:
text: 'button'
""")
class Test(TabbedPanel):
pass
class MyApp(App):
def build(self):
test = Test()
panel = TabbedPanelItem()
test.add_widget(panel)
return test
if __name__ == '__main__':
MyApp().run()
您将小部件(标签,文本输入,复选框,按钮...(放在BoxLayout中,BoxLayout的行为是将小部件分组到(仅一列(列或行中,您可以更改BoxLayout的方向设置attr"方向",默认情况下为"水平"。(阅读此内容(
您可以将一个 BoxLayout 放入其他 BoxLayout 中,并设置方向您可以创建不同的东西,对于您的 page1,您可以执行以下操作:
BoxLayout:
orientation: 'vertical'
BoxLayout:
orientation: 'horizontal'
Label:
text: 'label'
TextInput:
text: 'Entry'
CheckBox:
text: 'CheckBox'
Button:
text: 'button'
BoxLayout:
orientation: 'horizontal'
Label:
text: 'label'
TextInput:
text: 'Entry'
CheckBox:
text: 'CheckBox'
Button:
text: 'button'
就像Mox在评论中所说的那样,也许GridLayout适合您的应用程序。
如果您是kivy的初学者,我建议您观看kivy的核心开发人员之一Alexander Taylor的视频。