我想创建一个简单的程序,它只显示存储在文本文件中的定义。一个标签和按钮显示下一个定义。我尝试用文档来做,但我找不到如何将文本加载到标签。有人能告诉我一些好的资源或代码样本吗?
我现在的代码(我希望在kivy网站的示例之上构建):
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text = 'Hello world')
if __name__ == '__main__':
MyApp().run()
答案 0 :(得分:3)
在UI中更新小部件的最简单方法是binding到properties。这可以在代码中完成,但在我看来,kivy的真正力量来自于使用它declarative UI language。使用kv,您将获得自动绑定。
以下是您可能会做的一个简单示例:
from kivy.app import App
from kivy.lang import Builder
from kivy.properties import StringProperty
kv = '''
BoxLayout:
orientation: 'vertical'
Label:
text: app.text
Button:
text: 'click me'
on_press: app.clicked()
'''
class MyApp(App):
text = StringProperty("hello world")
def build(self):
return Builder.load_string(kv)
def clicked(self):
self.text = "clicked!"
if __name__ == '__main__':
MyApp().run()
在UI的kv描述中,您告诉kivy您希望Label上的文本绑定到您在类上定义的应用程序上的StringProperty
。自动绑定意味着无论何时为该属性设置值(如在单击的函数中),UI都将自动使用新值进行更新。