me_*_*and 5 python user-interface tkinter
我正在尝试使用Python 2.6.7与Tkinter一起工作.我希望下面的代码可以将第一个按钮拉伸到第二个按钮的宽度,但是这两个按钮只有它们需要的宽度才能适合它们的文本.
#!/usr/bin/python
from Tkinter import *
win = Frame()
win.grid(sticky=N+S+E+W)
inner_a = Frame(win)
inner_a.grid(row=0, column=0, sticky=N+E+W)
inner_b = Frame(win)
inner_b.grid(row=1, column=0, sticky=S+E+W)
Button(inner_a, text='1').grid(row=0, column=0, sticky=E+W)
Button(inner_b, text='Some long text').grid(row=0, column=0, sticky=E+W)
win.mainloop()
Run Code Online (Sandbox Code Playgroud)
根据我的理解,单列win将扩展到它包含的最大东西的宽度,即第一个按钮inner_b的宽度inner_a,然后是第一个按钮的宽度,以及第一个按钮的宽度.
实际上,下面会发生什么; 第一个按钮的宽度足以包含"1",而不是第二个按钮的宽度.

我需要做什么来获得第一个按钮来扩大第二个按钮的大小?
如果您希望小部件在网格中排成一行,首先要确保它们具有相同的父级.如果所有窗口小部件的大小相同或者您只使用一列,则这不是必需的.
您需要做的另一件事是给您的柱子增加重量.您的代码中发生的事情是窗口小部件正在扩展以填充列,但该列未扩展以填充主列.如果你给它一个1的重量.你需要做类似的事情inner_a.columnconfigure(1, weight=1),然后再这样做inner_b.
| 归档时间: |
|
| 查看次数: |
13197 次 |
| 最近记录: |