我有一个包含树视图和按钮的框架。 当按下按钮时,树视图的行将被删除,列将被重新创建并命名标题。 列设置为拉伸,树本身设置为扩展。
我的理解是,此配置应导致列拉伸以匹配包含的框架。
在第一次启动时,将调整列的大小,并且框架与树视图的预期大小匹配。 然后,我按下按钮以重新分配列并调整其大小(与初始化中调用的函数相同)。
列会调整大小,但树视图将保持相同的整体宽度。 如果拖动窗口的右边缘,则树形视图会随着框架而缩小。 当框架“接触”最右边的列时,它似乎恢复了其“拉伸性”,并且当我调整窗口大小时,列会增加/缩小。
此外,有时(每两次启动),列的宽度设置不会在按钮的第一次单击上出现;而是在每次单击按钮时都不会显示。 我从未在任何后续点击中看到此问题。
我搜索了几篇类似的文章,但它们指出扩展为false,但我在self.tree.pack()和listbox.pack()的包含框架中将其设置为true。 我尝试不使用expand,也同时填写了两个pack()语句; 行为是相同的。
调整树形视图包含的列的大小时,为什么树形视图无法调整大小? 是什么导致第一次点击无法调整列大小?
import tkinter as tk
import tkinter.font as tkFont
import tkinter.ttk as ttk
import random
# import natsort as ns
class MultiColumnListbox(tk.Frame):
"""Creates a multi-column "listbox"