2008-09-14 12 views
13

Estoy a punto de comenzar con una gran aplicación Qt, que está compuesta de componentes más pequeños (grupos de clases que funcionan juntas). Por ejemplo, puede haber un diálogo que se usa en el proyecto, pero debe desarrollarse por sí mismo antes de integrarse en el proyecto. En lugar de trabajar en otra carpeta en alguna parte y luego copiarla en la carpeta principal del proyecto, ¿puedo crear una subcarpeta dedicada a ese diálogo y luego incorporarla de alguna manera en el proyecto principal?¿Cómo hago un subproyecto con Qt?

Respuesta

18

Esto es lo que yo haría. Digamos que quiero la siguiente jerarquía de carpetas:

/MyWholeApp 

se containt los archivos para toda la aplicación.

/MyWholeApp/DummyDlg/ 

contendrá los archivos para el cuadro de diálogo independiente que eventualmente formará parte de toda la aplicación.

Desarrollaría el cuadro de diálogo independiente y las clases relacionadas. Crearía un archivo de proyecto Qt que se incluirá. Contendrá solo los formularios y archivos que eventualmente serán parte de la aplicación completa.

Archivo DummyDlg.pri, en/MyWholeApp/DummyDlg /:

# Input 
FORMS += dummydlg.ui 
HEADERS += dummydlg.h 
SOURCES += dummydlg.cpp 

El ejemplo anterior es muy simple. Podría agregar otras clases si es necesario.

para desarrollar el cuadro de diálogo independiente, me permitiría crear un archivo de proyecto Qt dedicada a este cuadro de diálogo:

Archivo DummyDlg.pro, en/MyWholeApp/DummyDlg /:

TEMPLATE = app 
DEPENDPATH += . 
INCLUDEPATH += . 

include(DummyDlg.pri) 

# Input 
SOURCES += main.cpp 

Como se puede ver, este fichero PRO está incluyendo el archivo PRI creada anteriormente y está añadiendo un archivo adicional (main.cpp) que contendrá el código básico para el funcionamiento de la caja de diálogo como un independiente:

#include <QApplication> 
#include "dummydlg.h" 

int main(int argc, char* argv[]) 
{ 
    QApplication MyApp(argc, argv); 

    DummyDlg MyDlg; 
    MyDlg.show(); 
    return MyApp.exec(); 
} 

A continuación, incluir este cuadro de diálogo para toda la aplicación que necesita para crear un archivo de Qt-Proyecto:

archivo WholeApp.pro, en// MyWholeApp:

TEMPLATE = app 
DEPENDPATH += . DummyDlg 
INCLUDEPATH += . DummyDlg 

include(DummyDlg/DummyDlg.pri) 

# Input 
FORMS += OtherDlg.ui 
HEADERS += OtherDlg.h 
SOURCES += OtherDlg.cpp WholeApp.cpp 

Por supuesto, el Qt-Proyecto El archivo anterior es muy simple, pero muestra cómo incluí el cuadro de diálogo independiente.

0

Para Qt en Windows, puede crear archivos DLL para cada subproyecto que desee. No hay problema con usarlos del proyecto principal (exe) después de eso. Tendrás que ocuparte de las dependencias, pero no es muy difícil.

1

Sí, puede editar el archivo de proyecto principal (.pro) para incluir el archivo de proyecto de su subproyecto.

See here