在Python中初始化基本GUI(使用tkinter)

时间:2017-10-27 00:53:49

标签: python tkinter

我正在尝试制作一个菜单,但这只是显示一个空白的GUI,我做错了什么?

from tkinter import *
class GUI:
    def __init__(self, master):
        menu = Menu(master)
        master.config(menu=menu)
        submenu = Menu(menu)

        menu.add_cascade(label="File", menu=submenu)

        subMenu.add_command(label="Nothing", command=SayNothing)
        subMenu.add_command(label="Exit", command=quit)

    def SayNothing(self):
        print("Nothing")

root = Tk()
app = GUI(root)
root.mainloop()
编辑:我修正了一个拼写错误,现在它显示'文件',但它没有正确显示子菜单

2 个答案:

答案 0 :(得分:0)

当错误拼写和范围纠正时,它可以正常工作:

from tkinter import *


class GUI:
    def __init__(self, master):
        menu = Menu(master)
        master.config(menu=menu)
        subMenu = Menu(menu)

        menu.add_cascade(label="File", menu=subMenu)

        subMenu.add_command(label="Nothing", command=self.SayNothing)
        subMenu.add_command(label="Exit", command=quit)

    def SayNothing(self):
        print("Nothing")

root = Tk()
app = GUI(root)
root.mainloop()
  • subMenu应该一直拼写
  • command=self.SayNothing,而不是command=SayNothing

答案 1 :(得分:0)

首先,submenu区分大小写。因此,除非您重新定义,否则必须将其引用为submenu而不是subMenu。此外,您在引用SayNothing后定义了它。

这可以解决你所有的问题。

from tkinter import *

def SayNothing():
    print("Nothing")

class GUI:
    def __init__(self, master):
        menu = Menu(master)
        master.config(menu=menu)
        subMenu = Menu(menu)

        menu.add_cascade(label="File", menu=subMenu)

        subMenu.add_command(label="Nothing", command=SayNothing)
        subMenu.add_command(label="Exit", command=quit)

root = Tk()
app = GUI(root)
root.mainloop()