Я только начал создавать новое приложение в kivy, и я просто не понимаю, почему оно выдает ошибку, когда я пытаюсь вызвать StringProperty kujund из класса приложения.
Python:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
from kivy.clock import Clock
kv = Builder.load_file("autogeo.kv")
kujund = "null"
class autogeo(App):
manager = ScreenManager()
Screen1 = Screen(name="esimene")
Screen2 = Screen(name='teine')
Screen3 = Screen(name="kolmas")
Screen4 = Screen(name='neljas')
Screen5 = Screen(name="viies")
kujund = StringProperty()
def update(self, *args):
pass
def build(self):
Clock.schedule_interval(self.update, 0.1)
return kv
if __name__ == "__main__":
autogeo().run()
Kv:
ScreenManager:
id: manager
size: root.width, root.height
Screen:
name: "esimene"
GridLayout:
cols: 2
rows: 3
Button:
text: "ruut"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
app.kujund: "ruut"
Button:
text: "ristkylik"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
Button:
text: "kolmnurk"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
Button:
text: "taisnurkne kolmnurk"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
Button:
text: "ring"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
Button:
text: "vordhaarne trapets"
on_press:
manager.current = "teine"
manager.transition.direction ="left"
Screen:
name: "teine"
FloatLayout:
Label:
text: "Valisid kujundi " + app.kujund
font_size: self.width * 0.1
Button:
text: "tagasi"
size_hint: 1, 0.2
on_press:
manager.current = "esimene"
manager.transition.direction = "right"
Traceback:
Traceback (most recent call last):
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 249, in create_handler
return eval(value, idmap), bound_list
File "C:\Users\ricsi\PycharmProjects\ToolsforMaths\autogeo.kv", line 46, in <module>
text: "Valisid kujundi " + app.kujund
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\parser.py", line 75, in __getattribute__
object.__getattribute__(self, '_ensure_app')()
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\parser.py", line 70, in _ensure_app
app.bind(on_stop=lambda instance:
AttributeError: 'NoneType' object has no attribute 'bind'