Sorry für mein sehr grundlegendes Problem, aber ich habe um eine Antwort für eine Stunde vergebens gesucht.Kivy wie Widget in Funktion zugreifen, kein KV nur Python-Code
das ist mein Grundcode:
class LoginScreen(Screen):
def __init__(self,**kwargs):
super(LoginScreen,self).__init__(**kwargs)
l = BoxLayout(orientation='vertical')
sound_btn = Button(text="Play Sound", font_size = 300)
word_bx = TextInput(multiline=False,hint_text='type here...',font_size=300)
submit_btn = Button(text = 'Submit', font_size=300)
submit_btn.bind(on_press = self.submitAction)
l.add_widget(sound_btn)
l.add_widget(word_bx)
l.add_widget(submit_btn)
self.add_widget(l)
def submitAction(self,*args):
if self.word_bx.text == KivyApp.word:
KivyApp.point+=1
self.word_bx.text=""
KivyApp.i +=1
print(KivyApp.point)
Wie Sie sehen können, in der submitAction Funktion möchte ich das word_bx Widget verweisen, aber das wirft einen Fehler, der besagt, dass die Klasse Loginpage kein Attribut word_bx hat. Ich habe dann versucht, "IDs" vor sich selbst zu platzieren, aber das wirft einen weiteren Fehler auf. Was mache ich falsch? sorry für meine Unfähigkeit ..
Hallo danke für deine Antwort, dies ist nicht die Lösung. Ich muss die Textbox zum Layout-Widget hinzufügen, ich kann es nicht einfach als selbst erklären, kivy mag das nicht. –
Sie haben Ihren Fehler gemeldet, da Class LoginPage kein Attribut word_bx hat. Ich erklärte die Ursache dafür. Ich verstehe nicht "Ich kann es nicht einfach als selbst erklären kivy mag das nicht." Kivy kann nicht feststellen, ob Ihre Variable als 'self.word_bx' oder' word_bx' deklariert ist. Kannst du etwas explizierter darüber sein, was Kivy nicht mag? Nachdem Sie den Attributfehler beseitigt haben, welchen anderen Fehler erhalten Sie? – BoarGules
Ja, aber wenn ich 'self.word_bx' habe, bekomme ich eine Fehlermeldung, dass die Klasse kein Attribut word_bx hat. Ich denke, es ist meine Schuld, weil ich dir nicht den ganzen Code gezeigt habe, ich baue diese Klasse nicht, es ist Teil eines Screen-Managers, sonst hätte deine Lösung funktioniert. –