【发布时间】:2019-07-31 07:23:01
【问题描述】:
我是 kivy 的新手,我遇到了我自己找不到解决方案的问题。基本上我想在每次按 F4 时更改按钮的颜色。 这是我在主循环中的代码:
if win32api.GetAsyncKeyState(F4) or F4s == True:
F4sw = not F4sw
if F4sw == True:
ApexDash().recoilon()
else:
ApexDash().recoiloff()
这是我在 F4sw 为 True 时引用的方法:
class ApexDash(Screen,FloatLayout):
def recoilon(self):
global F4s
F4s = True
print('check')
self.ids.recoil_on.color = (1,0,0,1)
self.ids.recoil_off.color = (0,1,0,1)
所以这里的问题是,每当我按 F4 时,打印检查都会按预期进行,但按钮不会改变颜色。但是,每当我从 .kv 文件调用函数时,它们确实会改变颜色。
Button:
id: recoil_on
background_normal: ''
text: 'ON'
on_press: root.recoilon()
color: 0,1,0,1
size_hint: 0.1, 0.1
pos_hint: {"x":0.03, "top":0.65}
但是当从类外部执行该方法时,所有小部件属性似乎都不起作用。抱歉,如果我遗漏了一些明显的东西,我们将不胜感激。
【问题讨论】:
标签: python kivy kivy-language