2017-06-20 23 views
1

因此,我正在學習Kivy的一個學校項目,並且在測試按鈕時出錯。這是我的代碼:kivy __init__需要1個事後論點,但有2個被給予

from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.clock import Clock 
from kivy.uix.button import Button 


class übung(GridLayout): 

    def lol(instance): 
     label.disabled = False 


    def __init__(self): 
     super(übung, self).__init__ 
     self.cols = 2 
     self.label = Label ("Ehrm ... lol") 
     label.disabled = True 
     self.btn1 = Button(text="Hello world 1") 
     self.btn1.bind(on_press=lol) 
     self.btn2 = Button(text="Hello world 2") 
     self.btn2.bind(on_press=lol) 

class App(App): 
    def build(self): 
     return übung() 


if __name__ == "__main__": 
    App().run() 

我得到的錯誤是在標題(初始化需要1個postitional說法,但分別給予2)。它應該是兩個按鈕,如果你按一個它說ehrm ...大聲笑。正如我所說,這只是爲了測試目的。

由於事先 我

+0

有什麼確切的錯誤?錯誤發生在哪裏? – Carcigenicate

+0

它已經解決了。我只是沒有添加self.add_widget(self。(name)) – Banana

回答

1

你有幾個錯誤。你顯示的錯誤是因爲你的名字給個說法(text)傳遞給Label構造:

self.label = Label (text="Ehrm ... lol") 

您的代碼應該是這個樣子:

from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.label import Label 
from kivy.uix.button import Button 


class übung(GridLayout): 
    def __init__(self, **kwargs): 
     super(übung, self).__init__(**kwargs) 
     self.cols = 2 
     self.label = Label(text = "Ehrm ... lol") 
     self.label.disabled = True 
     self.btn1 = Button(text="Hello world 1") 
     self.btn1.bind(on_press=self.lol) 
     self.btn2 = Button(text="Hello world 2") 
     self.btn2.bind(on_press=self.lol) 

     self.add_widget(self.label) 
     self.add_widget(self.btn1) 
     self.add_widget(self.btn2) 

    def lol(self, event): 
     self.label.disabled = False 

class App(App): 
    def build(self): 
     return übung() 


if __name__ == "__main__": 
    App().run() 
相關問題