2012-10-08 39 views
2

我一直在研究基於Qt/qml的用戶界面。UI屏幕「加載」時會發生什麼?

我使用了類似'動態加載'屏幕的要求。 (使用加載程序元素)

優點:所有屏幕無需在啓動時加載,從而縮短系統啓動時間。

缺點:如果以後需要加載屏幕,則需要時間,並在此時減少用戶響應。

我的問題是,什麼是實際'加載'到內存當我說,加載UI屏幕?

我的意思是如果它的C++代碼,我會理解它像一些動態對象正在創建。我無法根據UI屏幕想象它?它是否像我用於使UI加載到內存中用於不同操作的圖像一樣?

添加到前面的問題,當我'卸載'屏幕時會發生什麼?

是否對加載和卸載的CPU要求相同?

回答

2

有很好的和詳細的解釋究竟打算何時公告引擎加載QML文件上:

http://www.kdab.com/qml-engine-internals-part-1-qml-file-loading/

+0

非常感謝鏈接sergk。還有一個疑問,當我們運行qml代碼時,所有這些步驟都會發生嗎?或者像它一樣的普通C++可執行文件,你可以編譯一次並且可以運行它多次而不需要重新編譯? –

+0

當您加載QML文件時,加載實例化和綁定僅運行一次。綁定表達式(生成的JavaScript字節碼)每次發出連接的信號時都會運行。 – sergk

1

當用加載程序加載QML對象時,程序實際上在您的QML文件(調用該元素類的構造函數)的每個元素的內存中創建一個對象。您可以將文件中的任何QML元素視爲相應的C++類。 當你卸載這些視圖時,每個元素的析構函數都會被調用。所以最後一個問題的答案是CPU對加載和卸載的要求會有所不同。

相關問題