如何让元素粘在Tkinter的右下角?

2024-09-21 02:54:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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不仅贴在右边,而且贴在底部,一个在另一个上面。 我该怎么做?


Tags: textright框架tkinterbutton按钮b2side
2条回答

回答“我该怎么把东西放在右下角?”无法根据上下文充分回答。这真的取决于橱窗里还有什么。您可以使用place轻松地将小部件放在任何您想要的地方,但它很少是正确的解决方案。

如果您真的想在网格中布局,那么网格相对容易理解(例如:最右边的列,底部有几行,顶部有一行或多行)。

也可以使用Pack,尽管它通常涉及使用附加帧。例如,可以为左右两侧创建一个框架,然后将按钮打包到右侧框架的底部。

也可以使用多个框架和附加框架。例如,可以使用网格将主小部件布局到页眉、主区域和页脚中,然后使用pack排列页脚中的按钮。

如果您实际上只需要两个按钮,并且希望它们堆叠在右下角,我建议您使用grid。除了将它们放在底部的一行中之外,还需要确保至少还有一行和一列占用了任何额外的空间。行和列可以为空,但必须配置为具有“权重”。

例如:

frame1.grid_rowconfigure(0, weight=1)
frame1.grid_columnconfigure(0, weight=1)

# give the empty row 0 and column 0 a non-zero weight
# so that grid gives all extra space to those columns.

b2_1.grid(row=1, column=1)
b2_2.grid(row=2, column=1)

在这种情况下,pack不是理想的几何图形管理器。你在一个框架中使用pack,你只想一个接一个地粘住孩子。还有一个地方经理,我还没有看到一个'自然'的用途。

在本例中,使用grid manager。这比打包简单,但有你想要的灵活性。一旦计算出网格将有多少行和列,就可以使用.grid(column=lastcol,row=lastrow)简单地进行放置。特里·扬·里德还建议使用太大的数字,因为空的列/行不显示,但我喜欢迂腐,所以我知道我的网格是什么样子的。

相关问题 更多 >

    热门问题