Вы никогда не вызываете метод on_value()
, который вы определяете.Что вы можете сделать, это использовать Clock.schedule_interval()
при создании приложения, передав метод, который меняет цвет метки и интервал, в котором вы хотите, чтобы он вызывался, следующим образом:
from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.uix.boxlayout import BoxLayout
import random
class MyLabel(Label):
def change_color(self, *args):
r, g, b = random.choice([[1, 0, 0],[0,0,1],[ 1, 1, 1]])
self.color = [r, g, b, 1]
class MyApp(App):
def build(self):
layout = BoxLayout()
label = MyLabel(text='NESIA')
Clock.schedule_interval(label.change_color, 1)
layout.add_widget(label)
return layout
MyApp().run()
Это предполагаетвам нужно иметь метку с текстом NESIA
, цвет которой случайным образом устанавливается на красный, синий или черный каждую секунду.Обратите внимание, что random.choice()
может возвращать один и тот же цвет два раза подряд, а это означает, что он не изменится в течение скольких секунд, как это происходит.