【发布时间】:2011-11-06 22:13:05
【问题描述】:
这是我想要得到的(这是一个 QTableView 小部件 + MVC 基于 QAbstractTableModel 与乘法 delegates):
注意事项:
委派一个不作为编辑工作的人,他们只是观众!我无法使用此表格视图编辑模型。
委托必须是可实现的。这意味着BLUE行的所有总高度可以是25px,也可以是250px。
-
MV 是简单的数据:
1ROW:公司名称 1 名称 1、名称 2、名称 3 其他数据
2ROW:CompanyName2 SingleName1 其他数据
3ROW:CompanyName3 Name1,Name2 OTHER DATA 等等...
问题:
- 是否可以创建自定义委托(
QItemDelegate或QStyleItemDelegate),例如上图的第二列?如果可能的话,也许你可以给我一些例子,或者我可以在哪里查看它们的资源链接。
PS。是的,我已经查看了所有带有代表的 Qt Demo 示例,但我就是不明白,如何做我想做的事。
PSS。 QTableView -> setIndexWidget() 我认为这不是一个好主意。但是QTableView ->setItemDelegateForColumn( myCustomDelegate ) 方法更好!
P3S。我不是在寻找QTableWidget 类的解决方案...
感谢您的回复! :-)
更新 #1:
-
我认为:
代理仅用于编辑(例如,如果我们使用模型/视图对象)和管理类似项目(所有/仅列/仅行)。
自定义小部件更好,但我没有在免费的 Qt 项目中遇到它们。而且要获得这种小部件的漂亮和正确的代码并不容易......
加法:
- 这里是link 相似性问题。
【问题讨论】:
-
你能描述一下你是如何从你的模型中获取数据的吗?您是否使用自定义角色?例如,如何获取特定行的“CompanyName2”?
-
目前,我还没有这样的解决方案。只有
QTreeWidget+ 我的自定义小部件。在我的问题中,我正在寻找一个答案,其中将包含有关加入的信息,例如:表格视图、模型和委托…… -
@mosg 如果您包含一个完整的最小工作示例来执行 X,这将更容易回答。坦率地说,我发现 spinbox 委托示例非常有用且简单。 qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html。我在python中工作,所以除了下面的答案之外,对细节没有太多帮助:它实际上很容易——只需为只读模型重新实现paint。剩下的工作回到委托基类。
-
@neuronet 感谢您的回复,但我不再需要答案了,因为它是很久很久很久以前......真的很伤心,这个UI原型很糟糕,很快我们拒绝了这些东西。
标签: qt delegates qt4 qtableview