Qt Quick如何在正确的时刻获取对象

Qt Quick how to get object at right moment

我正在使用 qt quick 5.10 制作应用程序 GUI。在我的 main.qml 中,我调用加载程序来显示第一个登录页面和第二个页面以提供初始设置。 我将这些信息保存在 SQLite 数据库中。 如果数据库中存在相关信息,我会跳过这两个页面的加载,但我不知道如何首先初始化和读取加载程序的数据库。 有没有解决方案首先初始化和读取数据库,然后加载加载程序? 我试着把下面的

    Component.onCompleted: {
        JSDB.dbInit();
        JSDB.readUserData();
    }

我在main.qml中的对象中(QtObject,虚拟键盘和Loader),一个一个,但好像是第一个完成的Loader。

我找到了一个方法: 在上面放置代码的地方创建一个 QML Item,可能是一个通用 Item 对 QtObject、虚拟键盘和 Loader 具有更高的优先级。 顺便说一句,如果有人能告诉我一个更好的异步管理对象的方法,我将非常感激

你的问题不是很清楚,但我想你是在问如何延迟加载器在某些条件清除之前不做任何事情。有很多方法可以做到这一点。最简单的方法是将 Loader 的 active 属性 绑定到某个布尔标志。只要该标志保持为假,加载程序就不会加载任何内容。这样的事情应该有效:

Window {
    property bool needsLogin: false

    Component.onCompleted: {
        // Do database stuff...
        needsLogin = ???
    }

    Loader {
        source: "LoginPage.qml"
        active: needsLogin
    }
}