如何用多个Tkinter复选按钮对齐列?

2024-04-30 06:33:07 发布

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

我试着在框架中放入16个复选按钮,将它们分为四列,如:

c1 = Tkinter.Checkbutton(group.interior(), text = 'Name', indicatoron= 1, variable = self.Checkvar_nr, command=cb)
    c1.(row = 0, column = 0)

以此类推:

^{pr2}$

一切都很好,除了列垂直对齐,因为使用的文本长度不同。 如何水平对齐?在


Tags: textnameself框架tkintergroupvariable按钮
2条回答

作为一种选择,尝试将每个元素放置在不可拉伸的图形元素中。在

我们的想法是布局管理器最大限度地利用屏幕不动产。因为你想占用更多的空间,这与布局管理器的算法相反,你需要找到一个不“改变大小”的图形容器。在

有时,您可以通过手动编辑文本字符串来实现这一点(不太推荐)。其他时候可以使用类似table的结构(例如HTML)。其他时候,可以使用具有定义的宽度和高度属性的帧。然后将这些框架作为元素放置在柱的内部。在

注:我很久没玩Tk了。我要凭记忆走。祝你好运!在

(编辑:)从内存开始,列将根据内容调整其宽度。如果第一列中有几个三个字符的标签,第二列有五个字符的标签,那么这两列的宽度将不同。(注意:这将取决于布局管理器。)如果有问题的布局管理器有一个“固定宽度”选项,那么它应该保持所有列宽相同。在

使用基于内容(HTML、CSS等)的维度重新排列的布局管理器,有时需要将内容放在“不可移动”的容器中。通常这些都是框架。框架用作边界框。当需要具有宽度和高度的元素没有该特性时,此方法有效。在

我不太理解这个问题,因为列必须垂直对齐,因为它是一个网格。我想你的意思是每列中的项没有与列边界对齐。将每个checkbutton添加到网格时,请尝试使用sticky='w'。这将导致它们“粘”在列的左边缘。在

相关问题 更多 >