QItemDelegate与自定义视图小部件

时间:2015-10-27 10:05:07

标签: qt qt5 model-view qitemdelegate

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

QWidget *createEditor(QWidget *parent,const QStyleOptionViewItem & option ,const QModelIndex & index ) const

但是如何使用自定义小部件来覆盖“查看”模式? 我看到使用paint方法的“星级”委托示例,但这不是我需要的。我需要显示一个自定义窗口小部件,其中包含其他标准窗口小部件,并以QTableViewQListView的视图模式使用它。不需要弄乱绘画指针和数字 - 只显示一个自定义小部件(具有.ui文件)并包含其他标准小部件及其行为。

例如: 有一个下载管理器应用程序可以以表格或列表视图的形式显示下载。 QListView包含下载列表。每个下载都有URL,Title,TotalSize,DownloadedSize,ProgressBar,Pause按钮,Remove按钮,Resume按钮。所有这些都可以是表格中的列(QTableView),或者在一个单元格(QListView小部件中)与HTML的DIV类似组成

如何实现呢?有什么像QWidget *createViewer(...

QtWidgets不使用QML。

1 个答案:

答案 0 :(得分:1)

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

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