Question

Je suis sur le point de commencer une grande application Qt, composée de composants plus petits (groupes de classes fonctionnant ensemble). Par exemple, un dialogue peut être utilisé dans le projet, mais doit être développé seul avant d'être intégré dans le projet. Au lieu de travailler quelque part dans un autre dossier, puis de le copier dans le dossier principal du projet, puis-je créer un sous-dossier dédié à cette boîte de dialogue, puis l'intégrer d'une manière ou d'une autre dans le projet principal?

Était-ce utile?

La solution

Voici ce que je ferais. Disons que je veux la hiérarchie de dossiers suivante:

/MyWholeApp

contiendra les fichiers pour l’ensemble de l’application.

/MyWholeApp/DummyDlg/

contiendra les fichiers de la boîte de dialogue autonome qui fera éventuellement partie de l’application entière.

Je développerais la boîte de dialogue autonome et les classes associées. Je créerais un fichier de projet Qt qui sera inclus. Il ne contiendra que les formulaires et les fichiers qui feront éventuellement partie de l’application entière.

Fichier DummyDlg.pri, dans / MyWholeApp / DummyDlg /:

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

L'exemple ci-dessus est très simple. Vous pouvez ajouter d'autres classes si nécessaire.

Pour développer la boîte de dialogue autonome, je créerais ensuite un fichier de projet Qt dédié à cette boîte de dialogue:

Fichier DummyDlg.pro, dans / MyWholeApp / DummyDlg /:

TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .

include(DummyDlg.pri)

# Input
SOURCES += main.cpp

Comme vous pouvez le constater, ce fichier PRO inclut le fichier PRI créé ci-dessus et ajoute un fichier supplémentaire (main.cpp) qui contiendra le code de base permettant d’exécuter la boîte de dialogue en mode autonome:

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

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

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

Ensuite, pour inclure cette boîte de dialogue dans toute l'application, vous devez créer un fichier Qt-Project:

fichier WholeApp.pro, dans / MyWholeApp /:

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

include(DummyDlg/DummyDlg.pri)

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

Bien sûr, le fichier Qt-Project ci-dessus est très simpliste, mais montre comment j'ai inclus la boîte de dialogue autonome.

Autres conseils

Oui, vous pouvez modifier votre fichier de projet principal (.pro) pour inclure le fichier de projet de votre sous-projet.

Voir ici

Pour Qt sous Windows, vous pouvez créer des DLL pour chaque sous-projet de votre choix. Aucun problème pour les utiliser à partir du projet principal (exe) après cela. Vous devrez vous occuper des dépendances, mais ce n'est pas très difficile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top