何时使用tkinter menubutton

时间:2014-01-22 16:35:59

标签: python tkinter

我正在学习使用Python 2.7和tkinter构建一个简单的应用程序,在创建父窗口时我有点困惑。我设法创建了一个窗口和下拉菜单,这里是代码:

import Tkinter as tk

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

        #initialize menu
        self.config(menu=MenuBar(self))


class MenuBar(tk.Menu):
    def __init__(self, parent):
        tk.Menu.__init__(self, parent)

        filemenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="File",underline=0, menu=filemenu)
        filemenu.add_command(label="New", command=self.callback)
        filemenu.add_separator()
        filemenu.add_command(label="Exit", underline=1, command=self.quit)

    def quit(self):
        sys.exit(0)

    def callback(self):
        print "called the callback!"

root = Root()
root.mainloop()

一切正常,我很满意,直到我在阅读tkk api时偶然发现 menuButton

我一直在谷歌搜索我似乎无法得到关于menubutton是什么以及什么时候应该使用的明确答案。

所以,我的问题是: 我何时应该使用menuButton并且应该使用它而不是Menu和.add_cascade功能?

1 个答案:

答案 0 :(得分:4)

通常你不会使用Menubutton类。如果您想在GUI中间使用带有附加菜单的按钮,它通常非常有用。例如,OptionMenu类使用按钮的Menubutton类的实例。大多数现代UI都不以这种方式使用菜单。