gpt4 book ai didi

python - 计算 wx.TreeCtrl 完全展开宽度的正确方法是什么

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:55 26 4
gpt4 key购买 nike

wx.TreeCtrl 的首选大小似乎是当树完全折叠时所有元素适合的最小大小。是否有一种好的(即跨平台兼容)方法来计算树的宽度并展开所有内容?我目前的解决方案是这样的:

def max_width(self):
dc = wx.ScreenDC()
dc.SetFont(self.GetFont())
widths = []
for item, depth in self.__walk_items():
if item != self.root:
width = dc.GetTextExtent(self.GetItemText(item))[0] + self.GetIndent()*depth
widths.append(width)
return max(widths) + self.GetIndent()

这在 win32 下很好用,但在 linux 下就不行了。有没有办法让 TreeCtrl 本身告诉我它的大小,以便我可以覆盖它报告的大小? (总是返回最大扩展宽度)

编辑:请原谅我没有提供我在上面使用的函数,但你明白了,我正在遍历树,获取每个标签的宽度,并返回最宽标签的总宽度 (考虑缩进)

最佳答案

我发现 GetBestSize 似乎考虑了折叠的项目。例如,使用演示中的 wxTreeCtrl(使用 Ubuntu 和 wxPython 2.8.7.1),当我更改内部文本字符串的长度时(我的演示版本中的第 74 行)返回值self.tree.GetBestSize() 确实考虑了内部字符串的这个新长度,即使树没有展开。也许您需要调用 SetQuickBestSize(False)

关于python - 计算 wx.TreeCtrl 完全展开宽度的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com