gpt4 book ai didi

qt - 在 QListView(使用模型/ View )上显示动态元素的最佳方式?

转载 作者:行者123 更新时间:2023-12-04 05:00:16 26 4
gpt4 key购买 nike

我们可以实现自己的委托(delegate)来显示富文本或图像,但 ListView 只能打印静态项目。你不能把“真正的”元素放进去,你可以画它们。

因此,没有办法显示可点击的超链接、转推按钮或加载异步图像。想想 Facebook 或 Twitter 的时间线 ListView .这就是我正在做的事情。

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

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

那么,显示动态元素的最佳方式是什么?

最佳答案

MVC 框架不太适合这种工作。

要正确执行此操作,您需要为需要显示的任何动态类型提供委托(delegate),然后提供强制模型发出 dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight) 的外部机制。每当这些类型需要重绘时。交互式内容会变得更糟,因为您需要强制更新鼠标悬停以触发委托(delegate)绘画。

对于这样的事情,你最好使用 QGraphicsScene/View .与其依赖模型,每个项目都可以自行处理,并且您仍然只能获得必要的重绘(通过它的 BSP 结构),此外您还可以选择硬件加速。

关于qt - 在 QListView(使用模型/ View )上显示动态元素的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com