在QListWidget上使用Model / View

时间:2013-04-22 10:08:15

标签: qt

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

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

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

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

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

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

那么,有没有办法在QListWidget中使用Qt的Model / View架构?或者我必须自己实施它们?

1 个答案:

答案 0 :(得分:2)

QListWidget does use Qt's MVC,因为它来自QListView和......

  

QListWidget使用内部模型来管理每个QListWidgetItem   清单。

只需使用QListWidget::model () const即可访问该模型。