Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子类化tkinter.Menu会产生默认菜单_Python_User Interface_Tkinter_Menu - Fatal编程技术网

Python 子类化tkinter.Menu会产生默认菜单

Python 子类化tkinter.Menu会产生默认菜单,python,user-interface,tkinter,menu,Python,User Interface,Tkinter,Menu,我试图创建一个tkinter GUI应用程序,同时将代码组织到主应用程序、框架和菜单的类中。对于菜单,我对tkinter.menu进行了子类化,但它给了我一系列默认菜单,而不包括我创建的菜单和命令。我已尽我所能将其剥离到以下说明问题的工作示例: 首先,我将tkinter.TK子类化以创建包含主窗口和菜单的主小部件。为了便于说明,我在文件菜单中添加了一个空方法作为命令。接下来,我将tkinter.Frame子类化以创建主框架。为了便于说明,我在框架中添加了一个文本框。最后,我将tkinter.Me

我试图创建一个tkinter GUI应用程序,同时将代码组织到主应用程序、框架和菜单的类中。对于菜单,我对tkinter.menu进行了子类化,但它给了我一系列默认菜单,而不包括我创建的菜单和命令。我已尽我所能将其剥离到以下说明问题的工作示例:

首先,我将tkinter.TK子类化以创建包含主窗口和菜单的主小部件。为了便于说明,我在文件菜单中添加了一个空方法作为命令。接下来,我将tkinter.Frame子类化以创建主框架。为了便于说明,我在框架中添加了一个文本框。最后,我将tkinter.Menu子类化以创建主菜单,并添加了子菜单“File”和命令“Open”

结果是一堆我没有创建的菜单,包括一个没有“打开”命令的文件菜单:

哪里出了问题?

替换:

self.menu = MainMenu(master=self)
与:

或加上:

self['menu'] = self.menu
# or self["menu"] = self.menu
# or self.config(menu=self.menu)
# or self.configure(menu=self.menu)
之后的任何地方:

self.menu = ...

要将您的菜单指定为类
顶级
小部件的菜单,请不要这样分割代码。如果在代码中有解释,请使用
#注释
。我根本无法生成任何菜单来组合您提供的代码。已修复格式设置。很抱歉。@列表的作用与
self.configure(menu=self.menu)
相同。
self['menu'] = self.menu
# or self["menu"] = self.menu
# or self.config(menu=self.menu)
# or self.configure(menu=self.menu)
self.menu = ...