如何使用多个Tkinter检查按钮对齐列?

时间:2012-03-27 20:51:22

标签: python tkinter

我尝试将十六个支票按钮放入框架中,将它们分成四列,如:

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

依此类推:

c16.(row = 3, column = 3)

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

2 个答案:

答案 0 :(得分:3)

我不太明白这个问题,因为列必须垂直对齐,因为它是一个网格。我想你所说的是每列中的项目都没有与列边界对齐。将每个复选按钮添加到网格时尝试使用sticky='w'。这将导致它们“粘住”到列的左边缘。

答案 1 :(得分:1)

作为选项,请尝试将每个元素放在不可伸缩的图形元素中。

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

有时您可以通过手动编辑文本字符串(不太喜欢)来完成此操作。其他时候您可以使用table类似的结构(例如HTML)。其他时候,您可以使用具有已定义宽度和高度属性的框架。然后将这些框架作为元素放置在列内部。

注意:我玩Tk已经很久了。我要记忆。祝你好运!

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

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