2017-03-31 59 views
1

编辑:操作系统是Windows 10的64位当创建在Python 3.6和Tkinter的菜单,下拉犯规留在框架

好了,我用Google搜索我的追尾过这一点。我正在构建一个简单的tkinter应用程序,并且在设置它之后,通常只需添加选项即可,但从创建的菜单中删除的内容不会保留在框架内。

import tkinter as tk 


class Window(tk.Frame): 

    def __init__(self, master=None): 
     super().__init__(master) 
     self.master = master 
     self.main_window() 
     self.widgets() 

    # All main window parameters go here 
    def main_window(self): 
     self.master.title("Calculate Commission") 
     self.master.geometry("800x600") 
     self.pack() 

    def widgets(self): 
     main_menu = tk.Menu(self.master, tearoff=0) 
     self.master.config(menu=main_menu) 

     # Create File Menu and Drop Down 
     file = tk.Menu(main_menu, tearoff=0) 
     file.add_command(label="Save") 
     file.add_command(label="Exit", command=exit) 
     main_menu.add_cascade(label="File", menu=file) 

     # Create Edit Menu and Drop Down 
     edit = tk.Menu(main_menu, tearoff=0) 
     edit.add_command(label="undo") 
     main_menu.add_cascade(label="Edit", menu=edit) 


main = tk.Tk() 
comm_prog = Window(master=main) 
main.mainloop() 

请参阅附件截图,看看有什么我指得:Menu Outisde of Frame

我相当有信心,这最终可能通过两种方式达到无论是。要么是我在某个地方做出的菜鸟错误,要么是因为系统的原因,而是因为某些原因,它只针对我的电脑。如果有人有任何见解,我将不胜感激。

添加的Tcl版本的截图:Tcl Version

+0

对于Linux Mint和Windows 7,您的代码可以像您期望的那样工作。你能确认你使用的是Tcl版本8.6吗? ('print(tk.TclVersion))') – Novel

+0

我进入PyCharm的python控制台,并导入tkinter作为tk并打印出版本,它说8.6,在主帖中添加了截图以及您和其他人的截图 –

+0

@乔纳森它的头脑是绝对令人难以置信的,这不是我第一次完成tkinter,但这是第一次在Windows 10上。这让我疯狂大声笑 –

回答

1

没有什么不对您的代码。这种行为是依赖于系统的。菜单在操作系统的控制下,而不是OSX和Windows上的tkinter。

+0

好吧,这就是我所倾向的,但不是100%确定它是否是某种东西我搞砸了或不是。吮吸它的系统依赖并且做这件事,使它更加难以诊断并且弄清楚到底发生了什么以及为什么它正在发生 –