我正在尝试使用python创建一个在我的gui上建立菜单的代码。问题是,当我在file下创建New选项时,它会一直调用函数null函数。当我点击new时,它应该会消失,但是当我运行程序时它会消失。我在null中使用print函数让我知道它什么时候被调用
class Board:
def __init__(self, master):
self.master = master
self.setup()
def null(self):
print('o')
def setup(self):
board = tk.Canvas(self.master, width = 800, height = 800)
board.pack()
#Creates the Walls/Floor
board.create_line(0, 790,800, 790, width = 20) #Creates Bottom Line
board.create_line(10, 800,10, 100, width = 35) #Creates Left Wall
board.create_line(790, 800, 790, 100, width = 35) #Creates Right Wall
space = 20
for x in range(6): #Creates pillars
space += 108.5
board.create_line(space, 800, space, 150, width = 20)
board.pack()
def newgame(self):
self.menubar = tk.Menu(self.master)
self.filemenu = tk.Menu(self.master, tearoff = 0)
self.filemenu.add_command(label="New", command = self.null())
self.menubar.add_cascade(label="File", menu=self.filemenu)
self.filemenu.add_separator()
self.master.config(menu=self.menubar)
答案 0 :(得分:1)
self.null
正在被调用(关闭),因为您要通过在其后放置()
来告知它。请记住,Python在函数名之后使用(...)
来调用该函数。
要解决此问题,只需删除括号:
self.filemenu.add_command(label="New", command=self.null)
现在,command
设置为self.null
的引用。