自定义QTreeView项目
问题描述:
我是PySide和Qt的新手,现在需要创建一个具有带有样式项目的树视图的应用程序。每个项目需要两行文本(不同的样式)和一个按钮。许多项目都应该在视图中,所以我选择了QTreeView而不是QTreeWidget。现在我设法将简单的文本项目(非风格)添加到QTreeView中,并且几乎不知道如何在一个项目上放置多个小部件。您能否给我举一个如何创建这样的设计的例子?自定义QTreeView项目
我在互联网上找到了一些与我想要的相似的示例,但它们都是C++,并且不清楚如何将代表和其他东西转换为Python。我现在很困惑这一切...
答
我推荐你使用简单的QTreeWidget
和插入复杂的部件与setItemWidget
。虽然Qt的widhets是外星人,他们没有那么重画,而是:
- 你不应该建立代表。
- 你不应该处理事件(如果你要放置在视图按钮,并使用委托绘制它,你必须处理所有其事件,如鼠标悬停,焦点改变等,这是很多工作。
使用'setItemWidget'它可以设置一个小部件的项目。而如何有几个QLabels和QPushButton在每个项目?应该有类似QPanel,但它不似乎是存在的。 – aplavin 2012-02-24 18:07:30
@chersanya,首先,你可以为每一列设置单独的部件,那么你的部件可能会非常复杂d内部结构。 – Lol4t0 2012-02-24 18:15:56
@ Lol4to以及如何使我的小部件“非常复杂的内部结构”? – aplavin 2012-02-24 19:23:33