Come faccio a creare un sottoprogetto con Qt?
-
09-06-2019 - |
Domanda
Sto per iniziare con un'applicazione Qt di grandi dimensioni, composta da componenti più piccoli (gruppi di classi che lavorano insieme).Ad esempio, potrebbe esserci un dialogo utilizzato nel progetto, ma che dovrebbe essere sviluppato autonomamente prima di essere integrato nel progetto.Invece di lavorarci sopra in un'altra cartella da qualche parte e poi copiarla nella cartella principale del progetto, posso creare una sottocartella dedicata a quella finestra di dialogo e poi incorporarla in qualche modo nel progetto principale?
Soluzione
Ecco cosa fareiDiciamo che voglio la seguente gerarchia di cartelle:
/MyWholeApp
conterrà i file per l'intera applicazione.
/MyWholeApp/DummyDlg/
conterrà i file per la finestra di dialogo autonoma che alla fine diventerà parte dell'intera applicazione.
Vorrei sviluppare la finestra di dialogo autonoma e le classi correlate.Vorrei creare un file di progetto Qt che verrà incluso.Conterrà solo i moduli e i file che eventualmente faranno parte dell'intera applicazione.
File DummyDlg.pri, in /MyWholeApp/DummyDlg/ :
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
L'esempio sopra è molto semplice.Potresti aggiungere altre classi se necessario.
Per sviluppare la finestra di dialogo autonoma, creerei quindi un file di progetto Qt dedicato a questa finestra di dialogo:
File DummyDlg.pro, in /MyWholeApp/DummyDlg/ :
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
include(DummyDlg.pri)
# Input
SOURCES += main.cpp
Come puoi vedere, questo file PRO include il file PRI creato sopra e aggiunge un file aggiuntivo (main.cpp) che conterrà il codice di base per eseguire la finestra di dialogo come autonomo:
#include <QApplication>
#include "dummydlg.h"
int main(int argc, char* argv[])
{
QApplication MyApp(argc, argv);
DummyDlg MyDlg;
MyDlg.show();
return MyApp.exec();
}
Quindi, per includere questa finestra di dialogo nell'intera applicazione è necessario creare un file Qt-Project:
file WholeApp.pro, in /MyWholeApp/ :
TEMPLATE = app
DEPENDPATH += . DummyDlg
INCLUDEPATH += . DummyDlg
include(DummyDlg/DummyDlg.pri)
# Input
FORMS += OtherDlg.ui
HEADERS += OtherDlg.h
SOURCES += OtherDlg.cpp WholeApp.cpp
Naturalmente, il file Qt-Project sopra è molto semplicistico, ma mostra come ho incluso la finestra di dialogo autonoma.
Altri suggerimenti
Sì, puoi modificare il file del tuo progetto principale (.pro) per includere il file di progetto del tuo sottoprogetto.
Per Qt su Windows puoi creare DLL per ogni sottoprogetto che desideri.Nessun problema con l'utilizzo successivo dal progetto principale (exe).Dovrai occuparti delle dipendenze ma non è molto difficile.