Я новичок в 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}
Но при выполнении метода извне класса все свойства виджета не работают. Извините, если я пропустил что-то очевидное, любая помощь приветствуется.