自定义 QTreeView 项目
Posted
技术标签:
【中文标题】自定义 QTreeView 项目【英文标题】:Customize QTreeView items 【发布时间】:2012-02-24 13:53:40 【问题描述】:我完全是 PySide 和 Qt 的新手,现在需要创建一个应用程序,它具有带有样式项目的树视图。每个项目需要两行文本(不同样式)和一个按钮。许多项目应该在视图中,所以我选择了 QTreeView 而不是 QTreeWidget。现在我设法将简单的文本项(非样式)添加到 QTreeView 并且几乎不知道如何在一个项目上放置多个小部件。你能举个例子说明如何创建这样的设计吗?
我在互联网上找到了一些示例,与我想要的类似,但它们都是 C++ 的,如何将委托和其他东西转换为 Python 并不明显。我现在真的对这一切感到困惑......
【问题讨论】:
【参考方案1】:我建议您使用简单的QTreeWidget
并使用setItemWidget
插入复杂的小部件。虽然 Qt 的 widhets 是外星人,但它们绘制起来并没有那么重,但是:
【讨论】:
使用setItemWidget
可以为项目设置一个小部件。以及如何在每个项目上有几个 QLabels 和一个 QPushButton?应该有QPanel之类的东西,但好像不存在。
@chersanya,首先,您可以为每列设置单独的小部件,然后您的小部件可以具有非常复杂的内部结构。
@Lol4to 以及如何制作我的小部件的“非常复杂的内部结构”?
@chersanya,与您通常创建 GUI 的方式相同。您甚至可以在 UI 设计器中创建表单并将此表单作为小部件传递。
@chersanya,list->setItemWidget(item, column, QUiLoader().load('form.ui'))
。 load
方法只返回 QWidget
。您可以照常操作以上是关于自定义 QTreeView 项目的主要内容,如果未能解决你的问题,请参考以下文章
在 QTreeView 中使用自定义角色而不是 DisplayRole