簡體   English   中英

Qt / QML:如何在不重新啟動應用程序的情況下“切換”或“打開”另一個QML文件?

[英]Qt/QML: How do I “switch to” or “open” another QML file without restarting my app?

我有一個小應用程序,可以從服務器加載QML文件並向用戶顯示某種“書架”。

用戶可以選擇其中一本顯示的書籍,C ++會在后台下載ZIP文件並解壓縮。 結果是在文件系統上為每本圖書創建一個文件夾,其中包含一個“ main.qml”文件,該文件基本上是該圖書的獨立版本,允許用戶瀏覽/縮放/等。

我正在使用ApplicationWindow在其QML文件中顯示書架,現在我想知道什么是“切換”到書並在ApplicationWindow中顯示的最佳方法。 最好的意思是,如果將書架從內存中“卸載”到釋放書本的可用資源,那就太好了。

我該怎么做?

我的粗略想法覺得不太“正確”:

  • 使用QQmlApplicationEngine::load()加載另一個URL?
  • 將書籍的QML組件作為最頂層的子對象添加到書架中; 但這會導致大量資源浪費。
  • ...?

任何建議表示贊賞!

最基本的解決方案是僅在應用程序窗口中使用Loader程序。 在實例化時使用main.qml進行設置,然后當用戶選擇一本書時,將Loader的源設置為該書的QML文件。

但是,最好動態加載“屏幕”,然后可以在銷毀前一個屏幕之前使用過渡效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM