我在Tkinter中为python3添加了按钮:
b2_1 = Button(frame1, text='aaaaaaaaaaaa')
b2_1.pack(pady=20, side=RIGHT)
b2_2 = Button(frame1, text='bbbbbbbbbbbbbbb')
b2_2.pack()
我希望按钮b2_1和b2_2不仅贴在右侧,而且贴在底部,一个正上方。我该怎么做?
我在Tkinter中为python3添加了按钮:
b2_1 = Button(frame1, text='aaaaaaaaaaaa')
b2_1.pack(pady=20, side=RIGHT)
b2_2 = Button(frame1, text='bbbbbbbbbbbbbbb')
b2_2.pack()
我希望按钮b2_1和b2_2不仅贴在右侧,而且贴在底部,一个正上方。我该怎么做?
6条答案
按热度按时间wnvonmuf1#
“我怎么把东西放在右下角”的答案?“断章取义是无法充分回答的这取决于窗口里还有什么。您可以使用use
place
轻松地将小部件放置在您想要的任何位置,但这很少是正确的解决方案。如果你真的想在网格中布局,那么网格相对容易理解(例如:最右边的列,底部有几行,顶部有一行或多行。
也可以使用Pack,但它通常涉及使用额外的帧。例如,您可以为左侧和右侧创建一个框架,然后将按钮放在右侧框架的底部。
也有可能使用多于一个沿着附加帧。例如,您可以使用grid将主小部件布局为页眉、主区域和页脚,然后使用pack在页脚中排列按钮。
如果你真的只想要两个按钮,并且你希望它们堆叠在右下角,我建议你使用
grid
。除了将它们放在底部的一行中之外,还需要确保至少有一行和一列占用任何额外的空间。行和列可以是空的,但必须将它们配置为具有“权重”。例如:
muk1a3rh2#
pack在这种情况下不是理想的几何管理器。你使用 Package 在一个框架,你只是想坚持孩子一个接一个。还有一个地方经理,我还没有看到一个“自然”的用途。
在这种情况下,使用grid manager。这不像打包那么简单,但有你想要的灵活性。一旦计算出网格将有多少行和多少列,使用
.grid(column=lastcol,row=lastrow)
放置就很简单了。Terry Jan Reedy还建议使用太大的数字,因为空的列/行不会显示,但我喜欢迂腐,所以我知道我的网格看起来是什么样子。kb5ga3dv3#
框架/窗口的.gridsize()方法返回包含网格大小的元组。即
将某物放在框架的右下角,用途:
这将向frame 1的网格添加行和列,并将b2_1放置在新的行和列中(因为网格的行/列系统为零索引)。
在下面添加另一个按钮:使用与上述相同的系统,即
将创建另一个新的行和列,并将b2_2放置在b2_1的右下角。因此,将b2_2直接置于b2_1下方(即,在与b2_1相同的列中),您必须将该列减少1,即
fquxozlt4#
grid和pack不能一起工作,不能在同一个python文件中使用。
这是使用pack()方法在右下角放置按钮的命令。
btn.pack(side=BOTTOM, anchor="e", padx=8, pady=8)
czq61nw15#
fateme tardasti的解决方案为我工作尝试了一下:
uujelgoq6#
在网格单元中定位图元-位置与指南针相同:N、E、S、W、NE、NW、SE和SW。
这个例子把它放在右下角: