ttk.分隔符设置长度/宽度

2024-05-12 19:31:01 发布

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

如何设置/更改ttk.分隔符Tkinter中的对象?在

        ttk.Separator(self, orient='horizontal').grid(column=0,
        row=0, columnspan=2, sticky='ew')

看起来columnspan试图完成这项工作,但是当有多个具有相同columnspan的分隔符时,它们的长度似乎不同-知道为什么吗?在

下面是一个简单快速的“脏”测试示例:

^{pr2}$

Tags: 对象self示例tkintercolumngridrowttk
1条回答
网友
1楼 · 发布于 2024-05-12 19:31:01

您的问题不是分隔符太短,而是您没有告诉grid如何处理未分配的额外空间。您的列的宽度仅为所需的宽度,而分隔符的宽度仅为它所在的列的宽度。在评论中,你说“我希望他们一直到输入字段的末尾”,而这正是他们所做的。您真正想要的是所有输入字段都以相同的位置结束。在

快速解决方法是确保在使用grid时,始终为至少一行和一列赋予非零权重。这告诉grid在哪里分配额外的空间。在您的例子中,您还没有这样做,所以在第三行中,entry小部件右侧有一些未使用的空间。在

这里快速而棘手的解决方案是确保列0或列1获得额外的空间。通常的选择是将它交给输入小部件。因此,您可以添加以下内容以改善情况:

thirdLayer.grid_columnconfigure(1, weight=1)

这解决了当前的问题,但您需要对每个帧以及根窗口执行相同的操作。对于包含由grid管理的子级的每个帧,需要为至少一行和一列指定权重。在

由于您似乎正在尝试创建一个由标签和条目小部件组成的网格,所以您可能需要考虑使用单个框架而不是多个框架。通过使用一个单独的帧,你不必去猜测要使用多少填充来使所有内容都对齐。在

相关问题 更多 >