首页 > 解决方案 > 使用网络服务异步填充 qabstractitemmodel

问题描述

我需要将客户端计算机上的 QAbstractItemModel 连接到服务器计算机上的数据。我已经有一个很好的类,它通过网络(来自另一个项目)异步处理数据请求/响应,当数据到达时它会发出一个信号。

我只是想弄清楚如何允许 QAbstractItemModel 方法(如 data 和 rowCount)以异步方式运行。我可以覆盖这些方法并插入一个在数据到达时退出的事件循环,但这感觉不对。

我敢肯定,我曾经在网上看到过这样的例子,但找不到。有人可以提供或指出实现这一目标的方法吗?

标签: qtasynchronousqabstractitemmodel

解决方案


从我在网上可以找到的内容来看,您不应该使用事件循环来导致 QAIM 在其任何方法中等待。

相反,返回一个带有选项“datavalid”标志的立即值,视图应该使用它来呈现/隐藏输出。然后从远程模型请求数据,并在收到后发出数据更改信号,以便视图更新屏幕上的数据。


推荐阅读