Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用自定义(不可编辑)委托创建模型/视图QTableView?_Qt_Delegates_Qt4_Qtableview - Fatal编程技术网

如何使用自定义(不可编辑)委托创建模型/视图QTableView?

如何使用自定义(不可编辑)委托创建模型/视图QTableView?,qt,delegates,qt4,qtableview,Qt,Delegates,Qt4,Qtableview,下面是我想要得到的(这是一个基于多重委托的QAbstractTableModel的QTableViewwidget+MVC): 注意事项: 代表a不担任编辑,他们只是观众!我无法使用此表视图编辑模型 委托必须是可实现的。这意味着蓝行的所有总高度可能是25px,或250px MV是简单的数据: 1如下:公司名称1、名称2、名称3其他数据 2ROW:CompanyName 2 SingleName 1其他数据 3行:公司名称3名称1、名称2其他数据等 问题: 是否可以创建自定义委托(QIte

下面是我想要得到的(这是一个基于多重委托的
QAbstractTableModel
QTableView
widget+MVC):

注意事项:

  • 代表a不担任编辑,他们只是观众!我无法使用此表视图编辑模型

  • 委托必须是可实现的。这意味着蓝行的所有总高度可能是25px,或250px

  • MV是简单的数据:

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

    2ROW:CompanyName 2 SingleName 1其他数据

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

问题:

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

是的,我已经和代表们一起看了所有的Qt演示示例,但我不明白如何做我想做的事情

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

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

谢谢您的回复!:-)


更新#1:

  • 我认为:

    • 委托仅用于编辑(例如,如果使用模型/视图对象)和管理类似项(全部/仅列/仅行)

    • 自定义小部件更好,但我还没有在免费的Qt项目中遇到它们。而且要获得这种小部件的好的和正确的代码并不太容易


添加:

  • 这是一个相似性问题

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


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

您能描述一下如何从模型中获取数据吗?您正在使用自定义角色吗?例如,如何为特定行获取“CompanyName2”?目前,我还没有这样的解决方案。只有
QTreeWidget
+我的自定义小部件。在我的问题中,我正在寻找一个答案,其中将包含有关将表视图、模型和代理连接在一起的信息…@mosg如果您包含一个完整的最小工作示例,您希望在其中执行X,那么回答会容易得多。坦率地说,我发现spinbox代理示例非常有用且简单。我在python中工作,所以除了下面的答案外,在细节方面帮不上太多忙:这实际上非常简单——只需重新实现只读模型的画图。剩下的工作将返回到委托基类。@neuronet感谢您的回复,但我不再需要答案,因为那是很久以前的事了。。。真的很遗憾,这个UI原型太糟糕了,很快我们就拒绝了。