2016-11-07 22 views
0

私はkivyアプリケーションを開発中です。以下のコードは単純なHello Worldの一種です。ボタンを押す。私はまだ何を把握することはできませんthis- Kivy: Invalid instance in App.rootKivy Appエラー - App.rootのインスタンスが無効です

raise Exception('Invalid instance in App.root') 
Exception: Invalid instance 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() 

に「こんにちは」からラベルの変更私は間違っている。助けてください。ありがとうございました。

+0

Pythonコードで作成したときに、self.add_widget(button)を使って手動でウィジェットを追加する必要はありませんか?それがあなたの問題の理由だとは確信していませんが、今はメモリ上にウィジェットオブジェクトを作成しているだけです。それだけです。実際には何も画面に追加されません。 – Synedraacus

答えて

1

あなたのGetTaskは何から継承していますか?それはまったく何かを継承していないようです。それを変更してみてください

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

また、質問の下で自分のコメントを見てください。しかし、それがまだ1.9.1の問題であるかどうかはわかりません。

+0

それは今実行されますが、私が得るのは黒い画面です。これは、self.add_widget(ボタン)を持っていないためかもしれませんか? – user5332025

+0

Nvm。それは働くようになった。 'クラスGetTask(ウィジェット)'と 'self.add_widget(ボタン)'を追加しました。ありがとう! – user5332025

関連する問題