为什么我的Tkinter GUI上没有显示菜单?

时间:2015-12-23 19:41:33

标签: python user-interface tkinter

我正在使用带有Anaconda 2.4.1的python 2.7.11。我目前正在编写Tkinter教程,找到here。我正在尝试在GUI上显示一个简单的菜单。我一直使用的代码如下:

from Tkinter import *

class Example(Frame):

    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()

    def initUI(self):

        self.parent.title("Simple Menu")
        menubar = Menu(self.parent)
        self.parent.config(menu = menubar)
        filemenu = Menu(menubar)
        filemenu.add_command(label = "Exit", command = self.onExit)
        menubar.add_cascade(label = "File", menu = filemenu)

    def onExit(self):
        self.quit()

def main():
    root = Tk()
    root.geometry("250x150+300+300")
    app = Example(root)
    root.mainloop()


if __name__ == '__main__':
    main()

代码的结果显示以下GUI。

enter image description here

我尝试过来自其他网站的类似代码声称使用菜单选项呈现GUI,所有这些代码都会呈现相同的结果。我已经更新了Anaconda并尝试从XQuartz服务器运行但没有用。没有错误消息,所有其他Tkinter小部件似乎工作正常(列表框,文本字段等)。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:6)

从外观&感觉您发布的GUI,我假设您使用的是OS X.在OS X上,菜单会单独显示在顶部菜单栏上。它不会显示在窗口本身上。请检查我的截图。

enter image description here

enter image description here

答案 1 :(得分:3)

在Mac OS X上,菜单位于桌面的顶部。不在实际的Tkinter窗口。你的代码有效。

答案 2 :(得分:0)

完成这项工作的命令是 root.configure(menu=ur_menu_bar)。应该完成此配置,创建所有子菜单及其相应的命令。它必须在您的菜单项的末尾给出。