HowTo使用自定义(不可编辑)委托创建模型/查看QTableView?

问题描述:

这里就是我试图让(这是一个QTableView部件+ MVC基于QAbstractTableModel与多代表):HowTo使用自定义(不可编辑)委托创建模型/查看QTableView?

enter image description here

注:

  • 代表不是编辑者,他们只是观众!我没有用这个表格视图编辑模型。

  • 代表必须是可实现的。这意味着蓝色行的所有总高度可以是25px或250px。

  • MV是简单的数据:

    1ROW:CompanyName1:NAME1,NAME2 NAME3 OTHER DATA

    2ROW:CompanyName2 SingleName1 OTHER DATA

    3ROW:CompanyName3 NAME1,名称2其他数据和等等。 ..

问:

  • 是否可以创建自定义委托(QItemDelegateQStyleItemDelegate),例如,像上图中的第二列?如果可能的话,也许你可以给我一些例子或资源链接,我可以在哪里看到它们。

PS。是的,我已经看过所有Qt演示与代表的例子,但我只是不明白,如何做我想要的。

PSS。 QTableView - >setIndexWidget()我认为这不是一个好主意。但QTableView - >setItemDelegateForColumn(myCustomDelegate)方法更好!

P3S。我不寻找QTableWidget类的解决方案...

谢谢你的答复! :-)


更新#1:

  • 我认为:

    • 代表仅用于编辑(例如,如果我们用模型工作/视图对象)和管理类似的项目(所有/只是列/只是行)。

    • 自定义小部件比较好,但我没有在免费的Qt项目中见过他们。要获得这种小部件的正确和可靠的代码并不容易


增加:

  • 这里是link到相似性问题。
+0

你能描述一下如何从模型中获取数据吗?你在使用自定义角色吗?例如,如何获得特定行的'CompanyName2'? – Casey

+0

现在,我没有这样的解决方案。只有'QTreeWidget' +我的自定义小部件。在我的问题中,我正在寻找一个答案,其中将包含有关加入事物的信息,例如:表格视图,模型和代表所有在一起... – mosg

+0

@mosg如果包含完整的最小工作示例,则会更容易回答在其中你想做X.坦率地说,我发现spinbox委托例子非常有帮助和简单。 http://qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html。我在python中工作,所以不能用太多的细节,除了下面的答案:它实际上很容易 - 只需为只读模型重新实现绘图。其余的工作可以回到委托基类。 – neuronet

代表不仅可用于创建用于编辑的小部件。它们也用于创建每个可见索引的整体外观(在本例中为表格单元格)。

您可以通过重新实现代理的paint()方法来自定义创建外观。