【发布时间】:2015-10-12 19:49:29
【问题描述】:
我想使用 Qt5 在可滚动列表中呈现一系列复杂数据。由于数据的来源是时间线,所以我想懒加载——也就是我想利用QAbstractItemModel的特性按需加载数据。视图将是只读的。
我可以使用自定义小部件在列表的每个单元格中显示数据吗?
到目前为止,我已经看到了一些建议:
- 使用
QAbstractItemView->setIndexWidget();但是,因为我想延迟加载数据,所以在加载数据之前为所有索引创建和设置小部件似乎不必要地昂贵。 - 将
QAbstractItemView->setItemDelegate()与覆盖paint()的自定义QStyledItemDelegate一起使用。结果看起来不错,但小部件只是简单地呈现,而不是交互的(无法选择文本等)。
【问题讨论】:
-
这可以使用 QML 轻松完成,但我不知道 Qt Widgets。看起来其他人之前遇到过这个问题:forum.qt.io/topic/13165/…