Я делаю графический интерфейс с Python KIVY. Я хочу отобразить случайное значение в графическом интерфейсе при запуске.
Я подумал, что это должно быть сделано в функции __init__, и попробовал следующий код.
test.py
import random
from kivy.config import Config
from kivy.app import App
from kivy.uix.widget import Widget
Config.set('graphics', 'width', 300)
Config.set('graphics', 'height', 300)
Config.set('graphics', 'resizable', False)
class TestWidget(Widget):
def __init__(self, **kwargs):
super(TestWidget, self).__init__(**kwargs)
first = random.random()
second = random.random()
third = random.random()
self.ids.spinner_test.values = [str(first),str(second),str(third)]
class TestApp(App):
def __init__(self, **kwargs):
super(TestApp, self).__init__(**kwargs)
self.title = 'random value'
def build(self):
return TestWidget()
if __name__ == '__main__':
TestApp().run()
test.kv
TestWidget:
<TestWidget>:
BoxLayout:
size:root.size
orientation: 'vertical'
Spinner:
id:spinner_test
text: ""
values: []
Label:
text: ""
Label:
text: ""
Label:
text: ""
Однако произошла следующая ошибка, и графический интерфейс не запустился. Как я могу исправить код?
Traceback (most recent call last):
File "kivy\properties.pyx", line 860, in kivy.properties.ObservableDict.__getattr__
KeyError: 'spinner_test'
During handling of the above exception, another exception occurred:
AttributeError: 'super' object has no attribute '__getattr__'