Python GUI菜单问题

时间:2013-11-23 01:37:27

标签: python user-interface menu tkinter

我正在尝试使用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)

1 个答案:

答案 0 :(得分:1)

self.null正在被调用(关闭),因为您要通过在其后放置()来告知它。请记住,Python在函数名之后使用(...)来调用该函数。

要解决此问题,只需删除括号:

self.filemenu.add_command(label="New", command=self.null)

现在,command设置为self.null引用