我有一个 python 脚本和一个 kivy 文件来构建界面。
我想通过 python 输入(网络输入)动态更新标签内的文本。
所以我为主 kivy 小部件创建了一个属性:
class UserForm(BoxLayout):
txt = StringProperty("")
在 kivy 内部,我使用 on_txt
调用下面小部件内部的一些更改:
<UserForm>:
orientation: 'vertical'
name: name_input.text
barcode: barcode_input.text
on_txt: print ("Aha"); barcode_label.text = "I CHANGED FOR THE BETTER"
Label:
id: barcode_label
text: "barcode (EAN or SN):"
font_size: 30
它打印“Aha”并且不会抛出任何错误,但它也不会更改标签的文本。
感谢任何帮助或提示!
最佳答案
在 python 中执行此操作
class UserForm(Screen):
on_enter(self):
self.barcode_label.text='I CHANGED FOR THE BETTER'
每次进入屏幕时,都会将代码更改为此 选择 如果你想要别的东西试试这个
class UserForm(Screen):
def changetext(self):
self.barcode_label.text='I CHANGED FOR THE BETTER'
并在你的 kv 文件中执行此操作
<UserForm>:
orientation: 'vertical'
name: name_input.text
barcode: barcode_input.text
barcode_label:barcode_label
Label:
id: barcode_label
text: "barcode (EAN or SN):"
font_size: 30
Button:
text: 'press me'
pos_hint:{"center_x":0.5,"center_y":0.3}
size_hint:(0.1,0.1)
on_press:root.changetext()
这为您提供了一个按钮来更改文本 如果您遇到任何错误,请告诉我
关于python - kivy:如何更新对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663289/