Qt / QML:延迟窗口渲染,直到数据可用

时间:2018-06-23 00:12:30

标签: c++ qt qml

我正在使用Qt / QML构建应用程序。我的主窗口的QML非常复杂,并且取决于大量数据,这些数据必须通过HTTP加载,然后由C ++后端处理才能准备好显示。

C ++后端提供一个信号,当数据准备就绪时将触发该信号。在此之前,我希望窗口为空,除了显示一个简单的加载指示器。当然,我可以使用一个简单的覆盖层来隐藏我的实际界面,直到数据可用为止,但这意味着我的实际用户界面的QML代码已经加载,并尝试访问尚未提供的数据,即导致很多错误,因此我需要为每个可能不可用的属性添加数十个虚拟值和NOTIFY信号。

完全停用部分QML代码并在信号触发后立即启用它的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我的个人经验是不要将数据提供给视图组件,不要对其进行处理。例如,将文本值设置为空字符串或不设置它,将图像组件源设置为空字符串或首先不设置它。当信号准备就绪时,您可以在那时将数据分配给视图。