Wie kann ich ein Teilprojekt mit Qt machen?
-
09-06-2019 - |
Frage
Ich bin dabei, auf einer große Qt-Anwendung zu starten, die aus kleineren Komponenten (Gruppen von Klassen, die zusammenarbeiten) hergestellt wird. Zum Beispiel könnte ein Dialog sein, die im Projekt verwendet wird, sollte aber auf seine eigene entwickelt werden, bevor sie in das Projekt eingebunden werden. Statt auf ihn irgendwo in einem anderen Ordner zu arbeiten und sie dann in die Hauptprojektordner kopieren, kann erstelle ich einen Unterordner, die zu diesem Dialog gewidmet ist, und dann irgendwie in das Hauptprojekt integrieren?
Lösung
Hier ist, was ich tun würde. Lassen Sie uns sagen, dass ich die folgende Ordner-Hierarchie wollen:
/MyWholeApp
werden die Dateien für die gesamte Anwendung enthalten.
/MyWholeApp/DummyDlg/
werden die Dateien für das Standalone dialogbox enthalten, die schließlich Teil der gesamten Anwendung sein wird.
Ich würde das Standalone-Dialogfeld und die zugehörigen Klassen entwickeln. Ich würde eine Qt-Projektdatei erstellen, die aufgenommen werden sollen. Es enthält nur die Formulare und Dateien, die schließlich Teil der gesamten Anwendung sein wird.
Datei DummyDlg.pri, in / MyWholeApp / DummyDlg /:
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
Das obige Beispiel ist sehr einfach. Sie könnten auch andere Klassen hinzufügen, wenn nötig.
das Standalone-Dialogfeld zu entwickeln, würde ich dann eine Qt-Projektdatei zu diesem Dialog gewidmet erstellen:
Datei DummyDlg.pro, in / MyWholeApp / DummyDlg /:
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
include(DummyDlg.pri)
# Input
SOURCES += main.cpp
Wie Sie sehen können, das PRO-Datei einschließlich der PRI-Datei oben erstellt, und fügt eine zusätzliche Datei (main.cpp), die den grundlegenden Code für die Ausführung des Dialogfeldes als eigenständigen enthalten:
#include <QApplication>
#include "dummydlg.h"
int main(int argc, char* argv[])
{
QApplication MyApp(argc, argv);
DummyDlg MyDlg;
MyDlg.show();
return MyApp.exec();
}
Dann dieses Dialogfeld auf die gesamte Anwendung schließen Sie eine Qt-Projektdatei erstellen müssen:
Datei 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
Natürlich über die Qt-Projekt-Datei ist sehr simpel, aber zeigt, wie ich gehörte das Stand-alone-Dialogfeld an.
Andere Tipps
Ja, Sie können Ihr Hauptprojekt bearbeiten (.pro-Datei) Ihr Sub-Projekt Projektdatei aufzunehmen.
Für Qt unter Windows können Sie DLLs für jedes Teilprojekt erstellen Sie wollen. Kein Problem mit ihnen aus dem Hauptprojekt (exe) danach mit. Sie werden Pflegen von Abhängigkeiten nehmen, aber es ist nicht sehr schwierig.