1

サーバーから QML ファイルをロードし、ある種の「本棚」をユーザーに表示する小さなアプリケーションがあります。

ユーザーが表示された書籍の 1 つを選択すると、C++ がバックグラウンドで ZIP ファイルをダウンロードし、解凍します。その結果、ファイル システム上の各ブックのフォルダーが作成され、基本的にブックの自己完結型バージョンである "main.qml" ファイルがあり、ユーザーは閲覧/ズーム/などを行うことができます。

本棚を QML ファイルに表示するために使用していますが、本に「切り替え」て ApplicationWindow に表示するための最良のApplicationWindow方法は何だろうと思っています。本棚がメモリからほとんど「アンロード」されて、本を表示するためのリソースが解放されるとよいでしょう。

どうすればいいですか?

かなり「正しい」とは思わない私の大まかなアイデアは次のとおりです。

  • QQmlApplicationEngine::load()別の URL を読み込むために使用しますか?
  • 本の QML コンポーネントを最上位の子オブジェクトとしてシェルフに追加します。しかし、これは多くの無駄なリソースをもたらします。
  • ...?

どんな提案でも大歓迎です!

4

1 に答える 1

0

最も基本的な解決策はLoader、アプリケーション ウィンドウで a を使用することです。main.qmlインスタンス化を使用するように設定し、ユーザーが本を選択するLoaderと、 のソースを本の QML ファイルに設定します。

ただし、「画面」を動的にロードする方がよいでしょう。その後、前の画面を破棄する前にトランジション効果を使用できます。

于 2015-02-04T19:53:10.403 に答える