我正在使用 qt quick 5.10 制作應用程式 GUI。在我的 main.qml 中,我呼叫 Loader 來顯示第一個登錄頁面和第二個頁面來提供初始設定。我將這些資訊保存在 SQLite 資料庫中。如果資料庫中存在相關資訊ara,我會跳過這兩個頁面的加載,但我不知道如何初始化和首先讀取Loader的資料庫。有沒有一個解決方案來初始化和讀取資料庫作為第一件事,然后加載加載器?我試圖把以下
Component.onCompleted: {
JSDB.dbInit();
JSDB.readUserData();
}
在main.qml(QtObject,虛擬鍵盤和Loader)中的物件中,每個物件一次,但似乎Loader是第一個完成的。
uj5u.com熱心網友回復:
您的問題不是很清楚,但我認為您是在問如何延遲加載程式在某些條件清除之前執行任何操作。有很多方法可以做到這一點。最簡單的方法是將 Loader 的active屬性系結到某個布爾標志。只要該標志保持為 false,Loader 就不會加載任何內容。這樣的事情應該作業:
Window {
property bool needsLogin: false
Component.onCompleted: {
// Do database stuff...
needsLogin = ???
}
Loader {
source: "LoginPage.qml"
active: needsLogin
}
}
uj5u.com熱心網友回復:
我找到了一種方法:創建一個 QML 專案,其中放置上面的代碼,可能是通用專案相對于 QtObject、虛擬鍵盤和加載程式具有更高的優先級。順便說一句,如果有人可以向我展示一種更好的異步管理物件的方法,我將不勝感激
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/345390.html
