2017-07-10 50 views
0

我在Windows上运行Python3.4上的tkinter,我想在我的GUI框中使用两个按钮。 我下面[this link]tkinter中的按钮之后的神秘额外空间

的代码是这样的:

import tkinter as tk 

class App(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 
     self.initialize() 

    def initialize(self): 
     button_crop = tk.Button(self, text=u"Crop", command=self.OnCrop) 
     button_crop.pack(side="left") 

     button_reset = tk.Button(self, text=u"Reset", command=self.OnReset) 
     button_reset.pack(side="left") 

    def OnCrop(self): 
     pass 

    def OnReset(self): 
     pass 

app = App() 

app.mainloop() 

现在,我得到它具有的权利一些额外的空间

enter image description here

我已经试过初始化一个按钮grid()然后button_crop.grid(column=0, row=1)但我得到了同样的结果。

请帮我删除这个额外的空白的权利。

+0

尝试删除最小和最大按钮。看起来,表单不能小于系统按钮的大小。看看这里https://stackoverflow.com/questions/2969870/removing-minimize-maximize-buttons-in-tkinter – ventik

+0

@ventik这是不可取的..我确定增加按钮的大小,以适应最小宽度。 –

+0

你想让按钮长大来填充空间,还是缩小窗口以去除额外的空间? –

回答

1

你想要这种行为吗?

import tkinter as tk 

class App(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 
     self.initialize() 

    def initialize(self):   

     button_crop = tk.Button(self, text=u"Crop", command=self.OnCrop) 
     button_crop.grid(row=0, column=0, sticky=(tk.N, tk.S, tk.E, tk.W)) 

     button_crop = tk.Button(self, text=u"Reset", command=self.OnReset) 
     button_crop.grid(row=0, column=1, sticky=(tk.N, tk.S, tk.E, tk.W)) 

     for i in range(2): 
      self.columnconfigure(i, weight=1) 

     self.rowconfigure(0, weight=1) 

    def OnCrop(self): 
     pass 

    def OnReset(self): 
     pass 

app = App() 

app.mainloop() 
+0

我不能只是扩大“裁剪”和“重置”按钮的大小,直到他们都加起来的最小宽度? –

+0

是的,这太棒了!你能否解释一下你的代码中的哪些改变帮助我获得了这种行为?万分感谢。 –

+1

columnconfigure为某些列设置选项,weight = 1意味着此列将可伸缩。在这里阅读更多http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/grid-config.html – ventik