繁体   English   中英

为什么我的 Tkinter GUI 窗口无法打开并且菜单栏没有显示任何错误

[英]Why does my Tkinter GUI WIndow not open and not show any error with a Menubar

我正在尝试向我的 Tkinter GUI 添加一个菜单栏。 我正在关注一个旧的 python 3.4 教程,在检查了其他来源之后,它似乎并没有过时。 当我执行代码时,我只是Process finished with exit code 0 ,除了运行我的代码文件的 python3 命令之外没有别的。

这是我的代码,我把它删掉了,但应该可以复制这个问题。 我认为变量容器存在一些问题,但我不确定如何解决问题

import tkinter as tk


class Tutorial(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)

        tk.Tk.wm_title(self, "Tkinter Tutorial")

        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        menubar = tk.Menu(container)
        filemenu = tk.Menu(menubar, tearoff=0)
        filemenu.add_command(label="Save graph") #, command=lambda: PageGraph.save_file()
        filemenu.add_command(label="Open graph") #, command=lambda: PageGraph.open_file()
        filemenu.add_separator()
        filemenu.add_command(label="Exit", command=quit())
        menubar.add_cascade(label="File", menu=filemenu)

        tk.Tk.config(self, menu=menubar)

        self.show_frame(StartPage)

    def show_frame(self, cont):
        frame = self.frames[cont]
        frame.tkraise()


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)


app = Tutorial()
app.mainloop()

考虑这行代码:

filemenu.add_command(label="Exit", command=quit())

这在功能上与此相同:

result_of_quit = quit()
filemenu.add_command(label="Exit", command=result_of_quit)

看到问题了吗? 您立即调用quit() ,因此 tkinter 退出。

当你定义一个小部件的command参数时,你必须给它一个函数的引用 您可以像以下示例中那样执行此操作。 注意缺少的()

filemenu.add_command(label="Exit", command=quit)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM