qt - 如何使用自定义(不可编辑)委托(delegate)创建模型/ View TableView?

标签 qt delegates qt4 qtableview

这是我想要得到的(这是一个基于 QTableViewQAbstractTableModel 小部件 + MVC,带有多个委托(delegate)):

enter image description here

备注:

  • 委托(delegate)不作为编辑工作,他们只是观众!我不会用这个表格 View 来编辑模型。
  • 委托(delegate)必须是可实现的。这意味着 BLUE 行的所有总高度可以是 25px 或 250px。
  • MV是简单的数据:

    1ROW:公司名称 1 名称 1、名称 2、名称 3 其他数据

    2ROW: CompanyName2 SingleName1 其他数据

    3ROW:CompanyName3 Name1,Name2 OTHER DATA 等等...

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


  • PS。是的,我已经查看了所有带有委托(delegate)的 Qt Demo 示例,但我就是不明白,如何做我想做的事。

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

    P3S。我不是在寻找 QTableWidget 的解决方案类(class)...

    谢谢您的回复! :-)

    更新#1:
  • 我觉得:
  • 委托(delegate)仅用于编辑(例如,如果我们使用模型/ View 对象)和管理类似项目(全部/仅列/仅行)。
  • 自定义小部件更好,但我没有在免费的 Qt 项目中遇到它们。而且要获得这种类型的小部件的漂亮和正确的代码并不容易......


  • 加法:
  • 这里是 link到相似性问题。
  • 最佳答案

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

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

    关于qt - 如何使用自定义(不可编辑)委托(delegate)创建模型/ View TableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245721/

    相关文章:

    c++ - QAbstractItemModel 是如何表示树的?

    c++ - Qt如何删除QObjects?

    c++ - 运行时向程序添加算法

    qt - QSslSocket waitForReadyRead 似乎没有工作

    c++ - 虚幻引擎因 AddDynamic 而崩溃

    来自 DLL 的 C# 回调

    c++ - Qt QProgressBar - 对齐文本

    c++ - qt4 designer 添加自定义类

    c++ - QT 中的 json 解析器

    iOS UiPickerView(-Helper) 应发送消息