如何在基于Qt Widget的应用程序中使用DEPLOYMENTFOLDERS指令

时间:2013-08-26 09:40:41

标签: qt qt-creator

当我使用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 / *”并且这样想。但没有任何作用。我在这里缺少什么?

2 个答案:

答案 0 :(得分:4)

我正在研究这个问题并偶然发现了这个悬而未决的问题。

基本上我提倡使用资源系统但是当你进行快速UI开发(qml)等待资源文件编译时可能会让人感到恼火,所以我想简单地复制这些文件。

这里令人困惑的是源/目标意味着略有不同的东西。描述它的最佳方式是copy this -> this root,而不是copy 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

我希望这有助于回答你的问题。我没有找到任何文档,所以我只是玩它直到它工作。 (对于测试的模拟数据非常有帮助。)

答案 1 :(得分:1)

我刚刚完成了文档(适用于4.8&amp; 5.x),并且qmake部分中没有该变量的文档,所以看起来它纯粹是qml。如果您尝试以通常的方式编译资源,则使用qrc文件来指定资源,不确定为什么Qt决定仅将DEPLOYMENTFOLDERS更改为qml。< / p>