Python Kivy,无法使用 Python 将标签添加到屏幕
Python Kivy, Unable to add Label to screen with Python
我正在尝试使用 Python 和 Kivy 向屏幕添加一个简单的标签。我知道如何使用 Builder.load_string() 方法来做到这一点,但我希望通过 Python.
使用 Kivy 库来做到这一点
当我 运行 下面的代码时,我得到一个空白的紫色屏幕,但是当我将标签放入 Builder.load_string() 方法时,它工作正常。我做错了什么?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
Builder.load_string("""
<HomePage>:
FloatLayout:
canvas.before:
Color:
rgb: .5,0,.75
Rectangle:
size: self.size
""")
class HomePage(Screen):
layout = FloatLayout()
home_title = Label(text="text")
layout.add_widget(home_title)
class LabelApp(App):
def build(self):
sm = ScreenManager()
sm.add_widget(HomePage(name='home'))
return sm
if __name__ == "__main__":
LabelApp().run()
这取决于你想做什么:如果你总是想将这些小部件添加到 HomePage
,你应该在 HomePage
的 __init__
方法中执行此操作(不要不要忘记在此处添加 self.add_widget(layout)
。
您也可以将它们添加到 LabelApp
的 build
方法中。只需将 HomePage
分配给一个变量,然后再次使用 add_widget
即可。
我正在尝试使用 Python 和 Kivy 向屏幕添加一个简单的标签。我知道如何使用 Builder.load_string() 方法来做到这一点,但我希望通过 Python.
使用 Kivy 库来做到这一点当我 运行 下面的代码时,我得到一个空白的紫色屏幕,但是当我将标签放入 Builder.load_string() 方法时,它工作正常。我做错了什么?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
Builder.load_string("""
<HomePage>:
FloatLayout:
canvas.before:
Color:
rgb: .5,0,.75
Rectangle:
size: self.size
""")
class HomePage(Screen):
layout = FloatLayout()
home_title = Label(text="text")
layout.add_widget(home_title)
class LabelApp(App):
def build(self):
sm = ScreenManager()
sm.add_widget(HomePage(name='home'))
return sm
if __name__ == "__main__":
LabelApp().run()
这取决于你想做什么:如果你总是想将这些小部件添加到 HomePage
,你应该在 HomePage
的 __init__
方法中执行此操作(不要不要忘记在此处添加 self.add_widget(layout)
。
您也可以将它们添加到 LabelApp
的 build
方法中。只需将 HomePage
分配给一个变量,然后再次使用 add_widget
即可。