【发布时间】:2018-01-05 02:10:23
【问题描述】:
我正在尝试使用 Tkinter 模块和 python 构建一个小型软件,但我不知道如何使用百分比而不是像素来设置小部件大小。我当然可以通过每时每刻抓取整个窗口的大小并除以 2 得到 50% 的大小来做到这一点,但是有没有更好的方法来使用 Tkinter 模块呢?
编辑 1:为了回答您的问题,我将代码放在这里:
class Navbar:
def __init__(self, master):
self.maxsizeFrame = Frame(master, height = 50) #maxsize handler, prevent self.frame to grow too big
self.maxsizeFrame.pack(fill = X, expand = NO)
self.frame = Frame(self.maxsizeFrame)
self.frame.pack(side = TOP, fill = BOTH, expand = YES)
self.masteries = Button(self.frame, text = "Masteries")
self.masteries.pack(side = LEFT, fill = BOTH, expand = YES)
self.runes = Button(self.frame, text = "Runes")
self.runes.pack(side = RIGHT, fill = BOTH, expand = YES)
所以我想创建一个导航栏,其中包含在“self.frame”中处理的两个按钮。但我希望这个设计能够响应,这就是为什么我将 expand 设置为“YES”。但是我想为“self.frame”设置一个最大尺寸,但我发现的唯一方法是将这个框架打包到另一个框架(“self.maxsizeFrame”)中,并将这个框架设置为“NO”。最后,我想将最大展开大小设置为主窗口的一半,所以如果“self.maxsizeframe”的高度可以是百分比,那就太好了。感谢阅读。
编辑 2: 实际上,使用网格布局构建软件似乎更有效,并且权重的选项会准确。
【问题讨论】:
-
有很多方法,但我们需要更多细节。使用百分比大小是不寻常的。您想为每个小部件执行此操作,还是只为一个小部件执行此操作?您想使用哪个或哪些小部件?你能创建一个简单的minimal reproducible example吗?