gpt4 book ai didi

qt - 页面呈现/加载所有组件时的事件

转载 作者:行者123 更新时间:2023-12-04 19:52:55 27 4
gpt4 key购买 nike

我有一个由子组件组成的 Qml 组件。加载(渲染)完所有内容后,我想执行一些操作。
有没有办法找出所有组件何时加载?只需使用 Component.onCompleted根元素上的事件是不够的,因为不能保证加载子元素。

问候,

最佳答案

您应该可以使用 afterSynchronizing() QQuickWindow的信号为达到这个:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1

ApplicationWindow {
visible: true
width: 1280
height: 700

property bool initialised: false

onAfterSynchronizing: {
if (!initialised) {
print("initialising...");
// stuff...
initialised = true;
}
}
}

优点:
  • 您可以免费获得。

  • 缺点:
  • 您只能在 QQuickWindow 上使用它衍生品。

  • 另一种方法是使用 Loader ;特别是它的 loaded() 信号:
    Loader {
    source: "MyComponent.qml"
    onLoaded: {
    // stuff...
    }
    }

    优点:
  • 对于可能需要维护您的代码的任何人来说,这是一个更清晰的替代方案。
  • 无需 Window 即可工作;可以在场景“层次结构”中的任何级别使用它。

  • 缺点:
  • 附带一点开销。如果组件经常在低级别构建(如按钮),则可能值得分析以查看它是否对性能产生负面影响。如果不是,则可以忽略不计。
  • 关于qt - 页面呈现/加载所有组件时的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33591721/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com