Kivy-如何在标签中添加多个标签或按钮

时间:2019-09-20 06:22:45

标签: python layout label kivy

我有这段代码,我想在第二列上添加多个按钮,而不是唯一的“保存”按钮,但是只保留了一个标签“ TEST”,我在网上搜索但没有找到任何东西

我没有使用.kv文件,而是全部都放在一个文件中。

import kivy    
from kivy.app import App    
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
import os

class ConnectPage(GridLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 2

        self.add_widget(Label(text="TEST"))
        self.save = Button(text="Save")
        self.add_widget(self.save)    



class Epicapp(App):
    def build(self):
        self.screen_manager = ScreenManager()

        self.connect_page = ConnectPage()
        screen = Screen(name="Connect")
        screen.add_widget(self.connect_page)
        self.screen_manager.add_widget(screen)

        return self.screen_manager



if __name__ == "__main__":
    chat_app = Epicapp()
    chat_app.run()

1 个答案:

答案 0 :(得分:0)

您需要在右侧创建一个BoxLayout,方向为“垂直”,并在其上添加按钮。然后,将BoxLayout添加到根类中

这是它的代码:

from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
import os

class ConnectPage(GridLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 2

        self.add_widget(Label(text="TEST"))
        self.mybox = BoxLayout(orientation='vertical')
        self.button1 = Button(text="Load")
        self.button2 = Button(text="Cancel")
        self.save = Button(text="Save")
        self.mybox.add_widget(self.button1)
        self.mybox.add_widget(self.button2)
        self.mybox.add_widget(self.save)
        self.add_widget(self.mybox)



class Epicapp(App):
    def build(self):
        self.screen_manager = ScreenManager()

        self.connect_page = ConnectPage()
        screen = Screen(name="Connect")
        screen.add_widget(self.connect_page)
        self.screen_manager.add_widget(screen)

        return self.screen_manager



if __name__ == "__main__":
    chat_app = Epicapp()
    chat_app.run()