python3tkinter设置listbox大小_python-3.x - 当列宽更改时,tkinter treeview不调整宽度 - 堆栈内存溢出...

在Python Tkinter应用程序中,一个包含Treeview的框架在列宽更改时未能正确调整大小。当按钮被点击以删除并重新创建列时,尽管列的宽度会调整,但Treeview的总体宽度保持不变,除非手动拖动窗口边缘。作者发现这个问题并不一致,有时列宽设置在按钮点击后不会更新。文章提供了相关代码以重现此问题。
摘要由CSDN通过智能技术生成

我有一个包含树视图和按钮的框架。 当按下按钮时,树视图的行将被删除,列将被重新创建并命名标题。 列设置为拉伸,树本身设置为扩展。

我的理解是,此配置应导致列拉伸以匹配包含的框架。

在第一次启动时,将调整列的大小,并且框架与树视图的预期大小匹配。 然后,我按下按钮以重新分配列并调整其大小(与初始化中调用的函数相同)。

列会调整大小,但树视图将保持相同的整体宽度。 如果拖动窗口的右边缘,则树形视图会随着框架而缩小。 当框架“接触”最右边的列时,它似乎恢复了其“拉伸性”,并且当我调整窗口大小时,列会增加/缩小。

此外,有时(每两次启动),列的宽度设置不会在按钮的第一次单击上出现;而是在每次单击按钮时都不会显示。 我从未在任何后续点击中看到此问题。

我搜索了几篇类似的文章,但它们指出扩展为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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值