如何在kivy中添加标签,TextInput python

how to add label, TextInput in kivy python

我是 python 的初学者,尤其是基维。我在设计 GUI 时遇到了一些小问题。根据页面中的图表(我已附上),我无法以正确的格式放置标签 TextInput。你能帮助我吗?提前致谢。

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()

您正在将小部件(Label、TextInput、CheckBox、Button...)放在 BoxLayout 中,BoxLayout 的行为是将小部件分组到(仅一个)列或行中,您可以更改方向BoxLayout 设置 attr 'orientation',默认为 'horizontal'。 (read this)

您可以将一个 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 的初学者,我建议您观看 this videos 来自 kivy 核心开发人员之一的 Alexander Taylor。