1

我有一个 python 脚本和一个 kivy 文件来构建界面。

我想通过pythons输入(网络输入)动态更新标签内的文本。

所以我为主要的 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”并且不会引发任何错误,但它也不会更改标签的文本。

感谢任何帮助或提示!

4

1 回答 1

2

在 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()

这使 ua 按钮可以按下以更改文本,如果您遇到任何错误,请告诉我

于 2016-04-16T11:50:18.710 回答