2013-08-26 1 views
5

Когда я использую Qt Creator для создания проекта Qt Quick/QML, он добавляет DEPLOYMENTFOLDERS в .pro-файл. Я могу использовать эту директиву, чтобы скопировать некоторые папки/файлы в каталог сборки при создании (компиляции) приложения.Как использовать директиву DEPLOYMENTFOLDERS в приложении на основе виджета Qt

Как я могу использовать это в простом приложении на основе 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 

Я пытался "/ звуки" и "звучит/*" и думает, как это. Но ничего не работает. Что мне здесь не хватает?

ответ

1

Я только что через документы (4,8 & 5.x) и нет никакой документации для этой переменной в разделе qmake, так это выглядит, как будто это чисто для qml. Если вы пытаетесь скомпилировать ресурсы обычным способом, необходимо использовать файл qrc, чтобы указать ресурсы, не зная, почему Qt решил перейти на DEPLOYMENTFOLDERS только для qml.

+0

Для простоты я использую QSound (я знаю, это устарело). QSound не может загружаться из встроенных ресурсов (я знаю, что это глупо). Я решил, что папка автоматически скопирована в каталог сборки. – HWende

4

Я изучал это и наткнулся на этот оставшийся без ответа вопрос.

В основном я защищаю использование системы ресурсов, но когда вы делаете быстрое развитие пользовательского интерфейса (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 

Надеюсь, это поможет ответить на ваш вопрос. Я не нашел на нем никакой документации, поэтому я просто играл с ней, пока она не сработала. (Это очень полезно с макетными данными для тестов).

Смежные вопросы