【问题标题】:HowTo create model/view QTableView with custom (non-editable) delegates?如何使用自定义(不可编辑)委托创建模型/视图 UITableView?
【发布时间】: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 等等...

问题:

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

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多