带有TkInter的python-自动调整大小按钮,但保持相同的大小

时间:2019-03-06 23:54:57

标签: python tkinter

我正在使用python和TkInter。

我需要在可调整大小的屏幕中放置两个按钮,当屏幕变大时,按钮也是如此。 我在here中找到了解决方法。

我还发现here中网格的权重是如何工作的,并得到了我想要的:

Two buttons the same size

从理论上讲,它的工作原理非常完美,如果我使用权重3和1,那么我应该得到的柱子比第二个柱子大3倍;如果我使用权重1和1,则每个柱子可以得到50%...

我的问题是一个按钮的文本大于另一个按钮的文本。 我希望按钮保持50%,这不是我要得到的:

Two buttons not the same size

我的代码是:

class MyGUI:

def __init__(self, master):
    self.master = master

    self.btn1 = Button(master, text='X')
    self.btn2 = Button(master, text='XXXXX')

    self.btn1.grid(row=0, column=0, sticky=N+S+E+W)
    self.btn2.grid(row=0, column=1, sticky=N+S+E+W)

    for x in range(2):
        Grid.columnconfigure(master, x, weight=1)

root = Tk()
my_gui = MyGUI(root)
root.mainloop()

那么我如何使按钮各留50%,而不管其中的文字是什么?

1 个答案:

答案 0 :(得分:0)

您可以在minsize中指定columnconfigure(...)选项,如下所示:

# get the width of the bigger button
minwidth = max(self.btn1.winfo_reqwidth(), self.btn2.winfo_reqwidth())
for x in range(2):
    Grid.columnconfigure(master, x, weight=1, minsize=minwidth)