2016-11-07 3 views
0

Ich arbeite am Aufbau einer Kivy App. Der folgende Code ist eine einfache Hallo Welt der Art. Drücke einen Knopf. Die Bezeichnung ändert sich von ‚Hallo‘ zu ‚Welt‘Kivy App Error - Ungültige Instanz in App.root

import kivy 
kivy.require('1.9.1') # replace with your current kivy version ! 

from kivy.app import App 
from kivy.uix.button import Button 
from kivy.uix.label import Label 
#from tasks import assign_task 


class GetTask(): 
    def __init__(self, **kwargs): 

     super(GetTask,self).__init__(**kwargs) 
     self.main_label = Label(text = "Hello") 
     button = Button(text="Press") 
     button.bind(on_press= self.update) 

    def update(self): 
     self.main_label.text = "World" 

class MyApp(App): 
    def build(self): 
     return GetTask() 


if __name__ == '__main__': 
    MyApp().run() 

Die Störung, die ich erhalte, wenn ich es laufen soll:

raise Exception('Invalid instance in App.root') 
Exception: Invalid instance in App.root 

ich this- sah Kivy: Invalid instance in App.root

Ich kann immer noch nicht verstehen, was Ich mache falsch. Bitte helfen Sie. Vielen Dank.

+0

Sie müssen Widgets nicht manuell mit self.add_widget (button) hinzufügen, wenn sie in Python-Code erstellt werden? Nicht sicher, dass es der Grund für Ihr Problem ist, aber im Moment erstellen Sie nur Widget-Objekte im Speicher und das war's. Dem Bildschirm wird nichts hinzugefügt. – Synedraacus

Antwort

1

Woher kommt Ihre GetTask? Es scheint mir, dass es überhaupt nichts erbt. Versuchen Sie, es zu ändern

class GetTask(Widget): 
    # The rest is like it's in your code. 

Werfen Sie auch einen Blick auf meinen Kommentar unter der Frage. Nicht sicher, ob es immer noch das Problem in 1.9.1 ist.

+0

Es läuft jetzt, aber alles, was ich bekomme, ist ein schwarzer Bildschirm. Könnte das daran liegen, dass du nicht die self.add_widget (Schaltfläche) hast? – user5332025

+0

Nvm. habe es zur Arbeit gebracht. Die 'Klasse GetTask (Widget)' und 'self.add_widget (Button)' hinzugefügt. Vielen Dank Kumpel! – user5332025

Verwandte Themen