【问题标题】:Qt/QML: Delay window rendering until data is availableQt/QML:延迟窗口渲染,直到数据可用
【发布时间】:2018-06-23 00:12:29
【问题描述】:

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

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

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

【问题讨论】:

  • 将所有窗口内容放在Loader 中,然后在触发器触发时加载它。
  • 除了刚才写的,你实际上会使用Loader

标签: c++ qt qml


【解决方案1】:

我个人的经验是不要给你的视图组件数据,不要绑定它们。例如,将您的文本值设置为空字符串或不设置它,将您的图像组件源设置为空字符串或不设置它。当你的信号进来并准备好数据时,你将数据分配给那个时候的视图。

【讨论】:

    猜你喜欢
    • 2016-11-22
    • 2021-06-06
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多