Apr-12-2020, 01:43 PM
Hey guys, I'm pretty new at coding kivy and think one of you could help me with a simple solution. I want to include the variable named [show_text] into my [Label] , [text] at the [main.kv]. right now i get the Message:
BuilderException: Parser: File "C:\Users\Lukas\PycharmProjects\test_app\main.kv", line 57:
...
55: pos_hint: {"top": 1, "left": 2}
56: size_hint: 1, .7
>> 57: text: app.show_text
58: id: aufgaben_player
...
AttributeError: 'NoneType' object has no attribute 'bind'
Thanks for helping me!
main.py
BuilderException: Parser: File "C:\Users\Lukas\PycharmProjects\test_app\main.kv", line 57:
...
55: pos_hint: {"top": 1, "left": 2}
56: size_hint: 1, .7
>> 57: text: app.show_text
58: id: aufgaben_player
...
AttributeError: 'NoneType' object has no attribute 'bind'
Thanks for helping me!
main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import ButtonBehavior
from kivy.uix.image import Image
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.properties import StringProperty, ObjectProperty
import random
from karten import *
class WindowManager(ScreenManager):
home_screen = ObjectProperty(None)
game_text_screen = ObjectProperty(None)
class ImageButton(ButtonBehavior, Image):
pass
class HomeScreen(Screen):
pass
class GameText(Screen):
pass
kv = Builder.load_file("main.kv")
class MainApp(App):
show_text = StringProperty()
def build(self):
return kv
def show_game_text_first(self):
show_text = Karten[random.randint(0, 2)]
print(show_text)
if __name__ == "__main__":
MainApp().run()main.kv#:import utils kivy.utils
WindowManager:
HomeScreen:
name: "home_screen"
FloatLayout:
canvas:
Color:
rgb: utils.get_color_from_hex("#3983F2")
Rectangle:
size: self.size
pos: self.pos
Label:
pos_hint: {"top": 0.7, "left": 1}
size_hint: 1, .1
text: "Schere Stein Papier"
font_size: min(root.height, root.width)/15
id: title_label
GridLayout:
rows: 1
pos_hint: {"top": .2, "left": 5}
size_hint: 1, .1
ImageButton:
source: "icons/weiter.png"
on_press:
self.source = "icons/weiterhell.png"
on_release:
self.source = "icons/weiter.png"
app.root.current = "game_text_screen"
app.show_game_text_first()
GameText:
name: "game_text_screen"
FloatLayout:
canvas:
Color:
rgb: utils.get_color_from_hex("#3983F2")
Rectangle:
size: self.size
pos: self.pos
Label:
pos_hint: {"top": 1, "left": 1}
size_hint: 1, .1
text: "Schere Stein Papier"
font_size: min(root.height, root.width)/15
id: title_label
Label:
pos_hint: {"top": 1, "left": 2}
size_hint: 1, .7
text: app.show_text
id: aufgaben_player
