2017-07-28 188 views
1

我想用Tkinter模块和python构建一个小软件,但我无法弄清楚如何使用百分比而不是像素来设置小部件大小。我当然可以通过每时每刻都抓住整个窗口的大小来做到这一点,然后除以2得到50%的大小,但是有没有更好的方法来用Tkinter模块来做到这一点?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”处理的两个按钮,一个导航栏。但是我希望这个设计能够响应,这就是为什么我将展开设置为“YES”。然而,我想为“self.frame”设置最大尺寸,但我发现的唯一方法是将此框架放在另一个框架中(“self.maxsizeFrame”),并将此框架扩展为“NO”。最后,我想将最大扩展大小设置为主窗口的一半,所以如果“self.maxsizeframe”的高度可以百分比,那么它可能会很好。谢谢阅读。

编辑2: 实际上,使用网格布局构建软件似乎更有效,并且权重的选项是准确的。

+1

有办法,但我们需要更多细节。使用百分比大小是不寻常的。你想为每个小部件做,还是只有一个小部件?你想使用哪个小部件或小部件?你可以创建一个简单的[mcve]吗? –

回答

0

虽然它取决于小部件,但您应该可以做到width=30%,并且与高度相同。你可以编辑你的帖子,说明你正在使用哪个小部件。我不会推荐百分比,因为它们有时会变得很时髦。