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

Posted

技术标签:

【中文标题】Kivy - 如何在标签中添加多个标签或按钮【英文标题】:Kivy - How to add multiple labels or buttons within a Label 【发布时间】:2020-01-21 04:24:17 【问题描述】:

我有这段代码,我想在第二列添加多个按钮而不是唯一的“保存”按钮,但只保留一个标签“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】:

您需要在右侧创建一个 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()

【讨论】:

以上是关于Kivy - 如何在标签中添加多个标签或按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kivy、Python 中更新标签的文本

如何在 kivy python 中的标签、文本输入和其他小部件中添加标题

有没有一种简单的方法可以在没有图像的情况下为 Kivy 标签、按钮、小部件等添加边框?

Kivy:单击按钮时如何更新标签

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

如何在 python 中使用格式化创建自定义 Kivy 标签类?