6

Qt Creator を使用して Qt Quick / QML プロジェクトを作成すると、DEPLOYMENTFOLDERS が .pro ファイルに追加されます。このディレクティブを使用して、アプリケーションのビルド (コンパイル) 時にいくつかのフォルダー/ファイルをビルド ディレクトリにコピーできます。

シンプルな Qt Widget ベースのアプリケーションでこれを使用するにはどうすればよいですか?

Qt Creator は単純な Qt プロジェクトにそれを追加せず、手動で追加すると機能しません。

これは私のプロジェクトファイルです:

folder_01.source = sounds
#folder_01.target =
DEPLOYMENTFOLDERS += folder_01

QT += core gui widgets
TARGET = myApp
TEMPLATE = app
SOURCES += main.cpp

「/sounds」と「sounds/*」を試してみて、そのように思いました。しかし、何も機能しません。ここで何が欠けていますか?

4

2 に答える 2

4

私はこれを調査していて、この未回答の質問に出くわしました。

基本的にはリソース システムの使用を推奨していますが、迅速な UI 開発 (qml) を行っている場合、リソース ファイルがコンパイルされるのを待つのはイライラする可能性があるため、このファイルを単純にコピーすることにしました。

ここで紛らわしいのは、ソース/ターゲットの意味がわずかに異なることです。それを説明する最良の方法はcopy this -> this rootcopy this -> here

私のビルドは、パス上でリソースを「生」にしたいだけなので、コピーしfolder->/ ています。私が持っているプロジェクトファイルの例を次に示します。

folder_qml.source = qml
folder_qml.target = /
folder_js.source = js
folder_js.target = /
folder_img.source = img
folder_img.target = /
DEPLOYMENTFOLDERS += folder_qml folder_js folder_img

ビルドすると、出力を確認できます。

10:41:57: Starting: "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" 
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Development/Subversion/MyBuild-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
Copying application data... 
60 File(s) copied
12 File(s) copied
6 File(s) copied
mingw32-make[1]: Leaving directory 'C:/Development/Subversion/MyBuild-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
Copying application data... 
60 File(s) copied
12 File(s) copied
6 File(s) copied
10:41:58: The process "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" exited normally.

結果のビルドは次のようになります。

/Build dir/
  + release
  + debug
  + qml
  + js
  + img
  Makefile.Release
  Makefile.Debug
  Makefile

これがあなたの質問に答えるのに役立つことを願っています. ドキュメントが見つからなかったので、うまくいくまで遊んでみました。(テスト用のモックデータで非常に役立ちます)。

于 2014-03-19T15:48:47.357 に答える
1

ドキュメント(4.8および5.xの場合)をqmake調べたところ、セクションにその変数のドキュメントがないため、純粋にqml. qrcファイルを使用してリソースを指定する通常の方法でリソースをコンパイルしようとしている場合、 Qt がDEPLOYMENTFOLDERSfor qmlonly に切り替えることにした理由がわかりません。

于 2013-08-26T11:24:57.660 に答える