可以显示多个图标的树视图GUI组件/库?

1 投票
2 回答
780 浏览
提问于 2025-04-15 16:01

我想在Python中重新制作这个界面,但找不到合适的库。有没有可能有一些图形用户界面(GUI)库可以满足我的需求?我已经查看过wxWidgets(这是我喜欢的GUI库),但他们没有类似的东西。

我已经有一个脚本,使用的是标准的wxTreeCtrl,但它没有办法在末尾添加额外的图标,就像这个截图里那样。

如果没有现成的GUI库可以用,有什么建议可以帮助我开始自己制作这个吗?

2 个回答

0

与其使用CustomTreeCtrl,我建议你看看HyperTreeList。它是基于CustomTreeCtrl的,但增加了对多列的支持。不过,我不太确定它是否默认支持在一列中显示多个图标。

2

你有几个选择:

  1. 使用 wx.lib.customtreectrl.CustomTreeCtrl
    CustomTreeCtrl 的 AppendItem 方法可以接受任何 wx 组件,最后会显示出来,所以你可以用它来添加,比如 tree.AppendItem(root, "item1", wnd=yourImageControl),这里的 yourImageControl 可以是你想显示的图片控件。

  2. 使用 wx.gizmos.TreeListCtrl,这样你可以在不同的列中放图标,而树形结构则放在第一列。

  3. 你可以使用 wx.lib.mvctree,并提供你自己的 Painter 类,或者从 TreePainter 继承一个类,并重写 Paint 方法。

  4. 或者,最复杂但最令人满意的方式是自己写一个树形控件。如果你打算长期使用这样的控件,并且可能需要更多的自定义修改,这将是最好的选择,而且不会太难。你可以参考 mvtree 来获取灵感,或者对其进行自定义。

撰写回答