QML ベースのアプリケーションをデプロイします。今、.qml ファイルとそれに関連するファイルにリソース システムを使用するか、相対アドレス指定を使用する方が良いのではないかと考えています。それとももっと良い方法がありますか?
最初の方法では、qml ファイルと画像の数がどんどん大きくなると、プロジェクトの管理が難しくなる可能性があります。また、Qt デスクトップ コンポーネントのようなサード パーティのプラグインを展開するのは難しいと思います。
そして、2 番目の方法は安全ではありません。誰もがテキスト エディターを開いて、.qml ファイルを編集できます。
より良い方法はありますか?
1 に答える
リソースシステムの使用:
すべての依存関係を単一のバイナリにバインドするため、コードで指定されたパスに従って正確な場所に配置しても問題ありません。
多くの場合、qml コード/画像などを共有したくないでしょう。[ソース プロジェクトを閉じる]、そのような場合に役立ちます。また、誰もファイルを変更したり、アプリケーションを無効にしたりすることができないため、より安全です。
これらの依存ファイルを実行時に変更することはできません。変更が必要になる場合があります。
The first way maybe make the project difficult to manage if the number of qml files and your images become larger and larger.
あなたの言うこととは裏腹に、どれだけ多くのファイルがあるかというと、それらを管理する方が簡単だと思います。ここでは、Qt Creator を使用することがいかに簡単かを確認できます。
相対アドレス指定:
すべての依存関係はさまざまな場所に分散しているため、コードで指定されたパスに従って正確な場所に配置するという問題があります。
あなたのファイルは、アクセスしたい人なら誰でも直接利用できるため、安全ではありません。
実行時にファイルの 1 つに変更が必要な場合は、それを行うことができます。例えば。ログファイルを持ち、そこにデータを書き込んだり読み込んだりします。
正確なパスを指定する必要があるため、ファイルの数が増えると(最初のアプローチと比較して)管理が困難になります。
私が見つけた2番目のアプローチの個人的な利点の1つは、次のような状況です。
デモ用の Qt アプリを、オフショアのマネージャーがいるクライアントに送信する必要があります。これらのデモは終日続きます。いくつかのマイナーな UI 機能 (ボタンのサイズが非常に小さいように見えるなど) があまりにも否定的な注目を集めている場合は、マネージャーにそれぞれの qml ファイルへの呼び出しを指示し、小さな変更 (例: scale : 1.5 ) を実行させることができます。システム全体を構築したり、exeを再送信したりする時間がないので便利です。
より良い方法はありますか?私が見たというわけではありません。上記のどれがあなたの要件により適しているかを見つけることが問題だと思います.