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
Qt QItemDelegate与自定义视图小部件_Qt_Qt5_Model View_Qitemdelegate - Fatal编程技术网

Qt QItemDelegate与自定义视图小部件

Qt QItemDelegate与自定义视图小部件,qt,qt5,model-view,qitemdelegate,Qt,Qt5,Model View,Qitemdelegate,Qt 5.5有一个虚拟方法来定义编辑模式的自定义小部件: QWidget*createEditor(QWidget*parent,常量QStyleOptionViewItem&option,常量QModelIndex&index)常量 但是如何使用自定义小部件覆盖“查看”模式呢? 我看到了“stars rating”代表示例,其中使用了paint方法,但这不是我需要的。我需要显示一个包含其他标准小部件的自定义小部件,并在QTableView或QListView的视图模式下使用它。不需要绘制指针

Qt 5.5有一个虚拟方法来定义编辑模式的自定义小部件:

QWidget*createEditor(QWidget*parent,常量QStyleOptionViewItem&option,常量QModelIndex&index)常量
但是如何使用自定义小部件覆盖“查看”模式呢? 我看到了“stars rating”代表示例,其中使用了
paint
方法,但这不是我需要的。我需要显示一个包含其他标准小部件的自定义小部件,并在
QTableView
QListView
的视图模式下使用它。不需要绘制指针和图形,只需显示一个自定义小部件(具有.ui文件)并包含其他标准小部件及其行为

例如: 有一个下载管理器应用程序,可以将下载显示为表或列表视图<代码>QListView和下载列表。每次下载都有URL、标题、TotalSize、DownloadedSize、进度条、暂停按钮、删除按钮、恢复按钮。所有这些都可以是表中的列(
QTableView
),也可以是一个单元格中类似于HTML的DIV的列(
QListView
小部件)

如何实现?是否有类似于
QWidget*createViewer(…
)的东西


QTWidget不使用QML。

对于静态内容,您可以使用
QAbstractItemView::setIndexWidget


对于动态内容,唯一的选择是在委托类中实现
paint
方法。

为什么它应该是处于查看模式的小部件?@vahancho非常常见的示例-QListView,其中包含下载列表。每次下载都有URL、标题、TotalSize、DownloadedSize、ProgressBar、Pause按钮、Remove按钮、Resume按钮。所有这些都可以e表中的列(QTableView)或组成类似于一个单元格中HTML的DIV的列(QListView小部件)。您可以尝试使用
QListWidget
QListWidget::openPersistentEditor()
函数在查看模式下显示编辑器。