重新加载文本标签kivy python
你好,我想有一个按钮,改变一个值(num)为随机整数。 因此num变量会更改labeltext的全局值。我遇到的问题是,我不能将textlabel放入回调函数中,也不能重新加载num变量。在我看来,labeltext加载的值为num=0,但它并没有按我所希望的那样改变 是否有一种方法可以定义一个函数,在按下按钮时更改labeltext重新加载文本标签kivy python,python,label,global-variables,kivy,Python,Label,Global Variables,Kivy,你好,我想有一个按钮,改变一个值(num)为随机整数。 因此num变量会更改labeltext的全局值。我遇到的问题是,我不能将textlabel放入回调函数中,也不能重新加载num变量。在我看来,labeltext加载的值为num=0,但它并没有按我所希望的那样改变 是否有一种方法可以定义一个函数,在按下按钮时更改labeltext num = 0 array=["lorem","fdw","abcd","icecream","onemore","sword"] labeltext = arr
num = 0
array=["lorem","fdw","abcd","icecream","onemore","sword"]
labeltext = array[num]
class word(Widget):
def callback(self, btn_instance):
global num
num = randint(0,5)
return num
textlabel =Label(text=labeltext,font_size=10)
btnr = Button(text='change the textlabel',pos=(0, 100))
class wordApp(App):
def build(self):
gc = word()
gc.add_widget(btnr)
global gc
btnr.bind(on_press=gc.callback)
gc.add_widget(textlabel)
return gc
if __name__ == '__main__':
wordApp().run()
提前感谢,我希望这也能帮助其他有同样问题的人。因为labeltext在顶部/开头更新,所以在生成每个新的随机整数后,您需要再次更新它
例子
main.py
输出
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.label import Label
from random import randint
num = 0
array = ["lorem", "fdw", "abcd", "icecream", "onemore", "sword"]
labeltext = array[num]
class word(Widget):
def __init__(self, **kwargs):
super(word, self).__init__(**kwargs)
self.textlabel = Label(text=labeltext, font_size=10)
btnr = Button(text='change the textlabel', pos=(0, 100))
btnr.bind(on_press=self.callback)
self.add_widget(btnr)
self.add_widget(self.textlabel)
def callback(self, btn_instance):
global num
global labeltext
print("\tnum={0}, labetext={1}".format(num, labeltext))
num = randint(0, 5)
labeltext = array[num]
print("\tnum={0}, labetext={1}".format(num, labeltext))
self.textlabel.text = labeltext
class wordApp(App):
def build(self):
return word()
if __name__ == '__main__':
wordApp().run()