0

是的你是对的。我们已经有了 QListView,当我们尝试使用模型/视图显示简单列表时,它是完美的。

但是,当我们需要显示带有富文本和小部件的复杂列表时,QListView 有很多问题。想想 Facebook 或 Twitter 的时间线列表视图。

当然,我们可以为富文本或图像实现自己的委托,但ListView 只能打印静态项目。因此,没有办法显示可点击的超链接(您可以计算鼠标和超链接的位置,但这是一项非常枯燥的工作)或加载异步图像。

好吧,QListWidget 似乎是我们的解决方案。我们可以将小部件放入其中。但。我们将失去我们的模型/视图/委托架构,这太可怕了!

现在,我的解决方案是用 QML 编写我的列表视图。其他小部件仍然是原生 Qt 小部件。(我不喜欢非原生的纯 QML 用户界面。)

QML 在做这类工作时非常灵活。然后导出我的模型,最后在我的 QMainWindow 中放一个查看器。但是用两种编程语言进行编码并尝试与其他本地小部件进行通信确实很困难。

那么,有没有办法将 Qt 的模型/视图架构与 QListWidget 一起使用?还是我必须自己实现它们?

4

1 回答 1

2

QListWidget 确实使用 Qt 的 MVC,因为它源自QListView和...

QListWidget 使用内部模型来管理列表中的每个 QListWidgetItem。

只需用于QListWidget::model () const访问模型。

于 2013-04-22T10:50:47.153 回答