2 回答

TA贡献1862条经验 获得超7个赞
from tkinter import *
class Buttons:
def __init__(self, row, column, frame):
self.row = row
self.column = column
b = Button(frame).grid(row = self.row, column = self.column)
tk = Tk()
b1 = Buttons(row = 1, column = 1, frame = tk)
tk.mainloop()
当 tkinter 有一个 Button 类时,您创建了一个 Button 类。使用您自己的变量名可能会有所帮助:) 我想它是试图递归地创建您创建的 Button 类的实例,而不是创建 tkinter 模块内的 Button 类的实例。

TA贡献1874条经验 获得超12个赞
在__init__
在Button
您要工作在一个新的实例类Button
类:
b = Button(frame)
由于button.__init__
需要 3 个参数,row, column, frame
因此脚本失败。如果你没有传递row
和column
也,你会遇到的递归问题,可能无限地创造新的实例Button
。
编辑:正如评论和其他答案中所指出的,tkinter
有自己的Button
类,你正在覆盖,这就是为什么你应该尽量避免这样做
from tkinter import *
而只是import tkinter
调用tkinter.Button
.
添加回答
举报