使用网络服务异步填充qabstractitemmodel

问题描述

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

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

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

解决方法

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

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