Pregunta
Estoy a punto de comenzar una gran aplicación Qt, que se compone de los componentes más pequeños (grupos de clases que trabajan juntos).Por ejemplo, podría ser un cuadro de diálogo que se utiliza en el proyecto, sino que debe ser desarrollado en su propia antes de ser integrado en el proyecto.En lugar de trabajar en ello en otra carpeta en algún lugar y luego copiar en la carpeta de proyecto principal, se puede crear una sub-carpeta que se dedica a ese cuadro de diálogo, y luego de alguna manera incorporar en el proyecto principal?
Solución
Aquí es lo que yo haría.Digamos que yo quiero la carpeta siguiente jerarquía :
/MyWholeApp
contendrá los ficheros de la aplicación.
/MyWholeApp/DummyDlg/
contendrá los archivos para la versión independiente de éste, que será eventualmente parte de toda la aplicación.
Me gustaría desarrollar el independiente de cuadro de diálogo y las clases relacionadas.Me gustaría crear un Qt-archivo de proyecto que se va a incluir.Contendrá sólo las formas y los archivos que finalmente será parte de toda la aplicación.
Archivo DummyDlg.el pri, en /MyWholeApp/DummyDlg/ :
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
El ejemplo anterior es muy simple.Se podrían agregar otras clases si es necesario.
Para desarrollar el independiente de cuadro de diálogo, me permitiría crear un Qt archivo de proyecto dedicado 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 PRO de archivo es incluido el PRI archivo creado anteriormente, y es la adición de un archivo adicional (main.cpp) que contendrá el código básico para el funcionamiento del cuadro de diálogo, como 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 el conjunto de aplicaciones que usted necesita para crear un Qt-archivo de 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, la Qt-archivo de Proyecto es muy simplista, pero muestra cómo he incluido el cuadro de diálogo.
Otros consejos
Sí, usted puede editar su principal proyecto (.pro) archivo para incluir su sub proyecto del archivo de proyecto.
Para Qt en Windows, puede crear archivos Dll para cada subproyecto que desea.No hay problema con el uso de ellas desde el principal proyecto (exe) después de eso.Tendrás que cuidar de las dependencias, pero no es muy difícil.