qt - 使用网络服务异步填充 qabstractitemmodel
问题描述
我需要将客户端计算机上的 QAbstractItemModel 连接到服务器计算机上的数据。我已经有一个很好的类,它通过网络(来自另一个项目)异步处理数据请求/响应,当数据到达时它会发出一个信号。
我只是想弄清楚如何允许 QAbstractItemModel 方法(如 data 和 rowCount)以异步方式运行。我可以覆盖这些方法并插入一个在数据到达时退出的事件循环,但这感觉不对。
我敢肯定,我曾经在网上看到过这样的例子,但找不到。有人可以提供或指出实现这一目标的方法吗?
解决方案
从我在网上可以找到的内容来看,您不应该使用事件循环来导致 QAIM 在其任何方法中等待。
相反,返回一个带有选项“datavalid”标志的立即值,视图应该使用它来呈现/隐藏输出。然后从远程模型请求数据,并在收到后发出数据更改信号,以便视图更新屏幕上的数据。
推荐阅读
- show-hide - Javascript隐藏/显示元素并停止自动滚动
- java - com.google.common.reflect.ClassPath 的问题
- sql - 合并具有不同列的两个表,没有空值
- javascript - 使用 React-Context 时对象不可迭代错误
- python - 无法在 VSCode 中打开 jupyter notebook
- php - WooCommerce:如何在结帐页面中添加自定义复选标记?
- reactjs - 在 Gatsby NetlifyCMS 项目中从 frontmatter 渲染 markdown/HTML
- assembly - x86 指令是否需要它们自己的编码以及它们的所有参数同时存在于内存中?
- python - AttributeError:“pygame.Rect”对象在进行碰撞时没有属性“rect”错误
- angular - '' 类型的 Babylonjs 参数不可分配给 '' 类型的参数