1
所以我正在写这个程序,使用乌龟绘制磁盘。我正在做一个tkinter接口,使用按钮等,但是,我似乎无法通过按钮在类中执行一个函数。它提示我这个经典python错误,“turtleInput()缺少1所需的位置参数:'numPressed'”Tkinter按钮和类。我怎样才能有效地通过按钮调用一个类的功能?
我试过一百万次,一百万种方法,我只是不能看到问题,也许你们其中一个可以。我会给你提供课堂内的功能和按钮(当然是代码),希望你能帮助我。如果您不太明白我的意思,请随时提问。
def turtleInput(self, numPressed):
self.length = int(numPressed)
self.lstColor = ["maroon","brown","red","orange","yellow",
"green","lightgreen","purple","blue",
"lightblue"]
for i in range(0,self.length):
self.shrink = 220
self.shrinkLst = []
while self.shrink > 0:
self.shrink = self.shrink-20
self.shrinkLst.append(self.shrink)
self.diskCol = self.lstColor[i]
self.turtleDisks(self.diskCol,self.shrinkLst[i])
现在按钮
num2= Button(root, text="2", width=3)
num2["command"]= lambda: Disk.turtleInput(2)
num2.grid(row=1, column=0, sticky=W, padx=3)
代码记住,我导入Tkinter的,乌龟和其他一切工作正常,这是唯一的问题。
有没有办法知道肯定,因为你并没有包括所有的代码,但如果'Disk'是一类,你就需要通过一个实例* *作为其任何方法的第一个参数,否则将你的调用写为'inst.turtleInput(2)'(其中'inst'是'Disk'类的一个实例)。如果您没有实例,那么您期望调用该方法做什么? – kindall
磁盘实际上是一个类,完整的代码只是具有__init__和该函数的类磁盘,其余的代码是按钮num2和num3,加上所有tkinter的东西,你知道root = Tk()等很短,这就是它,即时通讯将尝试你的建议,感谢您的快速回复寿! – arregoitiaj1