Ich bin dabei, auf einer großen Qt-Anwendung zu starten, die aus kleineren Komponenten besteht (Gruppen von Klassen, die zusammenarbeiten). Zum Beispiel könnte es einen Dialog geben, der im Projekt verwendet wird, aber selbst entwickelt werden sollte, bevor er in das Projekt integriert wird. Anstatt in einem anderen Ordner irgendwo zu arbeiten und es dann in den Hauptprojektordner zu kopieren, kann ich einen Unterordner erstellen, der diesem Dialog gewidmet ist, und ihn dann irgendwie in das Hauptprojekt einbinden?Wie mache ich ein Unterprojekt mit Qt?
Antwort
Hier ist, was ich tun würde. Nehmen wir an, ich möchte folgende Ordnerhierarchie:
/MyWholeApp
enthält die Dateien für die gesamte Anwendung.
/MyWholeApp/DummyDlg/
enthält die Dateien für die eigenständige Dialogbox, die eventuell Teil der gesamten Anwendung sein wird.
Ich würde das eigenständige Dialogfeld und die zugehörigen Klassen entwickeln. Ich würde eine Qt-Projektdatei erstellen, die enthalten sein wird. Es enthält nur die Formulare und Dateien, die letztendlich Teil der gesamten Anwendung sein werden.
Datei DummyDlg.pri, in/MyWholeApp/DummyDlg /:
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
Das obige Beispiel ist sehr einfach. Sie können bei Bedarf weitere Klassen hinzufügen.
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 können siehe, diese 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ändiges 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 das Qt-Projekt Datei oben ist sehr simpel, aber zeigt, wie ich das eigenständige Dialogfeld einfügte.
Für Qt unter Windows können Sie DLLs für jedes gewünschte Unterprojekt erstellen. Kein Problem, sie danach aus dem Hauptprojekt (exe) zu verwenden. Sie müssen auf Abhängigkeiten aufpassen, aber es ist nicht sehr schwierig.
Ja, Sie können Ihre Hauptprojektdatei (.pro) so bearbeiten, dass sie die Projektdatei Ihres Unterprojekts enthält.
- 1. Wie mache ich ein Layout in Qt unsichtbar?
- 2. in Qt, Wie mache ich ein Fenster zum aktuellen Fenster?
- 3. Wie mache ich ein DLOOKUP
- 4. Einfaches Multithreading mit Qt: mache ich das richtig?
- 5. Wie mache ich ein Fragment?
- 6. Wie mache ich ein Privateigentum?
- 7. Wie kann SBT die Kreuzkompilierung für ein bestimmtes Unterprojekt überspringen?
- 8. Wie mache ich einen Slider wie Javascript?
- 9. Wie drucke ich einen Qt-Dialog oder ein Qt-Fenster?
- 10. Wie mache ich mkdir mit einem Pfad, der Leerzeichen enthält?
- 11. Wie mache ich ein Python-Skript ausführbar?
- 12. Wie mache ich ein Quadrat in C++
- 13. Wie mache ich ein "^" Zeichen in MATLAB?
- 14. Wie mache ich ein mehrdimensionales gezacktes Array?
- 15. Wie mache ich ein Array von Strukturen
- 16. Wie mache ich ein Fenster über allem (sogar Vollbild-Spiele!) C++/Qt
- 17. Wie mache ich ein ausgegrautes HTML-Formular?
- 18. Wie mache ich ein Layout halb transparent?
- 19. Xcode-Arbeitsbereich mit Unity3D als Unterprojekt?
- 20. Wie mache ich ein Array von org.apache.http.Header?
- 21. Wie mache ich ein D3-Plugin?
- 22. Wie mache ich ein Objekt richtig waschbar?
- 23. Wie mache ich ein umgekehrtes Objekt?
- 24. Rails - Wie mache ich ein globales Objekt
- 25. Wie mache ich ein floating-Steuerelement
- 26. Wie mache ich ein Model-Attribut global?
- 27. Wie mache ich ein Chrom Plugin
- 28. Wie mache ich ein NotEqual in NHibernate
- 29. Wie mache ich ein bootfähiges Programm?
- 30. Wie mache ich ein Objekt voller Arrays?