我有一个按钮,当它被按下时会被禁用,因为每次按下该按钮都会运行一个脚本(但是由于线程的原因,GUI和脚本都“同时”运行)。我希望能够在脚本完成运行之后再次启用该按钮。问题在于按钮是用kv文件编写的,而运行脚本的函数是用python写的。
我试图在kv文件之外调用实例'press_b',但是没有运气。我曾见过有人尝试在.kv文件外部调用按钮,但随后进行任何更改的情况下,用户必须按另一个按钮来重新启用上一个按钮,我不希望再有一个按钮。
.kv
<GUI>:
GridLayout:
Button:
id: press_b
text: "Press"
font_size:30
pos:130,180
size:150,80
on_press: root.func.start()
on_release: press_b.disabled=True
.py
class GUI(GridLayout):
def open_script(instance):
script.run()
#press_b enable
#both the script and gui run simultaneosly
func = threading.Thread(target=open_script, args=(1,))
每次我都尝试在代码外调用'press_b'时,我会收到“ NameError:未定义名称'press_b'”