kivy __init__需要1个事后论点,但有2个被给予

问题描述:

因此,我正在学习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

你有几个错误。你显示的错误是因为你的名字给个说法(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()