2010-08-18 184 views
0

我正在研究GUI,我想知道如何调整框架菜单的大小以便让框架的所有水平空间都被占用。Tkinter框架的自动调整大小

问题已经改变:现在当窗口大小正常时,菜单按钮正常,但当调整大小时,菜单按钮会在窗口中间放下。我怎样才能让他们坚持框架的顶部?

rgds,

回答

0

您的问题缺乏足够的细节给你一个很好的答案。您是否将菜单按钮放在框架中来创建菜单栏?如果是这样,那是错误的做法。创建一个菜单窗口小部件,并将其分配给主窗口的菜单属性,然后您将以标准菜单行为正常结束。

这里有一个简单的例子:

import Tkinter 

root = Tkinter.Tk() 
menubar = Tkinter.Menu(root) 
root.config(menu=menubar) 

fileMenu = Tkinter.Menu(menubar, tearoff=False) 
editMenu = Tkinter.Menu(menubar, tearoff=False) 

menubar.add_cascade(label="File",underline=0, menu=fileMenu) 
menubar.add_cascade(label="Edit",underline=0, menu=editMenu) 

fileMenu.add_command(label="Open...", underline=0) 
fileMenu.add_command(label="Save", underline=0) 
fileMenu.add_separator() 
fileMenu.add_command(label="Exit", underline=1) 

editMenu.add_command(label="Cut", underline=2) 
editMenu.add_command(label="Copy", underline=0) 
editMenu.add_command(label="Paste", underline=0) 

root.mainloop() 
+0

谢谢你的提示。我的主窗口是一个框架,它有一个菜单属性? – Bruno 2010-08-18 12:55:26

+0

@Bruno:“菜单”是上层窗口的属性。每个Tkinter应用程序至少有(通常只有)一个。这通常被称为“根”。我会给我的答案添加一个例子,希望能够澄清。 – 2010-08-18 13:55:13

+0

谢谢,我试过你的方法,它的效果很好。 只有一个小问题:当我调整窗口的大小时,菜单保留在菜单栏的左侧,是否可以让它们取所有的水平空间(好奇心)? – Bruno 2010-08-18 14:03:45