5

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

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

但是如何使用自定义小部件来覆盖“视图”模式?我看到了使用方法的“星级”代表示例,paint但这不是我需要的。我需要显示一个自定义小部件,其中包含其他标准小部件,并在QTableView或的视图模式下使用它QListView。无需弄乱绘制指针和图形 - 只需显示一个自定义小部件(具有 .ui 文件)并包含其他标准小部件及其行为。

例如:有一个下载管理器应用程序可以将下载显示为表格或列表视图。QListView带有下载列表。每个下载都有 URL、标题、TotalSize、DownloadedSize、ProgressBar、Pause 按钮​​、Remove 按钮、Resume 按钮。所有这些都可以是表格中的列 ( QTableView) 或类似于 HTML 的 DIV 在一个单元格中组成 (QListView小部件)

如何实现?有什么类似的QWidget *createViewer(...吗?

QtWidgets 不使用 QML。

4

1 回答 1

1

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

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

于 2015-10-28T11:26:09.487 回答