2012-02-24 106 views
0

我是PySide和Qt的新手,现在需要创建一个具有带有样式项目的树视图的应用程序。每个项目需要两行文本(不同的样式)和一个按钮。许多项目都应该在视图中,所以我选择了QTreeView而不是QTreeWidget。现在我设法将简单的文本项目(非风格)添加到QTreeView中,并且几乎不知道如何在一个项目上放置多个小部件。您能否给我举一个如何创建这样的设计的例子?自定义QTreeView项目

我在互联网上找到了一些与我想要的相似的示例,但它们都是C++,并且不清楚如何将代表和其他东西转换为Python。我现在很困惑这一切...

回答

1

我推荐你使用简单的QTreeWidget和插入复杂的部件与setItemWidget。虽然Qt的widhets是外星人,他们没有那么重画,而是:

  • 你不应该建立代表。
  • 你不应该处理事件(如果你要放置在视图按钮,并使用委托绘制它,你必须处理所有事件,如鼠标悬停焦点改变等,这是很多工作
+0

使用'setItemWidget'它可以设置一个小部件的项目。而如何有几个QLabels和QPushButton在每个项目?应该有类似QPanel,但它不似乎是存在的。 – aplavin 2012-02-24 18:07:30

+0

@chersanya,首先,你可以为每一列设置单独的部件,那么你的部件可能会非常复杂d内部结构。 – Lol4t0 2012-02-24 18:15:56

+0

@ Lol4to以及如何使我的小部件“非常复杂的内部结构”? – aplavin 2012-02-24 19:23:33