我正在使用python和TkInter。
我需要在可调整大小的屏幕中放置两个按钮,当屏幕变大时,按钮也是如此。 我在here中找到了解决方法。
我还发现here中网格的权重是如何工作的,并得到了我想要的:
从理论上讲,它的工作原理非常完美,如果我使用权重3和1,那么我应该得到的柱子比第二个柱子大3倍;如果我使用权重1和1,则每个柱子可以得到50%...
我的问题是一个按钮的文本大于另一个按钮的文本。 我希望按钮保持50%,这不是我要得到的:
我的代码是:
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%,而不管其中的文字是什么?
答案 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)