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?

È stato utile?

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.

Vedere qui

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top