2 Qt Projekte miteinander verbinden

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
daffi
Beiträge: 23
Registriert: 2. Januar 2011 18:44

2 Qt Projekte miteinander verbinden

Beitrag von daffi »

Hey Leute,

ich habs nun hinbekommen, meine 2 Projekt laufen beide ohne Probleme.

Jetzt will ich sie verbinden, was sich als nicht so leicht herausstellt.

Beide Projekte sind graphische QT Applications.
Beide haben eine form (jeder ein Centralwidget).

Ich würde einfach die Form,die Header und die .cpp ein das andere Projekt importieren.
Danach diese in den anderen Datein einbinden.
Soweit, so gut.

Und wie nun weiter?
Geändert werden muss natürlich was am Aufruf.
Sprich ich muss dem einen sagen, dass er an der Stelle die ui aufruft.Wie mache ich das?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Kannst du bitte das Ziel beschreiben, eine Erklärung WIE man etwas machen will ohne zu sagen, was der genaue Hintergrund ist, bringt wenig.

Als erste Antwort: Zwei Projekte mit QMainWindow zusammenbasteln kommt immer schlecht. Versuche, in einzelnen Komponenten zu denken und diese in eigene Libs statt ein Projekt mit Hauptfenster zu stecken. Diese kannst du auch über getrennte Projekte entwickeln und an einer Stelle in deinem System installieren, wo sie gefunden werden können.
Nun erstellst du GENAU EIN Projekt mit einem Hauptfenster, welches die einzelnen Komponenten aus den verschiedenen Libs unter einer Haube zusammenführt.
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Ev. auch ein übergeordnetes Projekt erstellen, welches beide Teilprojekte beinhaltet. Stichwort template=subdirs
Aber wie von franzf schon gesagt: Solange man nicht weiss, worum es konkret geht, ist eine Lösung schwierig zu finden.
daffi
Beiträge: 23
Registriert: 2. Januar 2011 18:44

Beitrag von daffi »

Ok folgendes,

es geht darum mein hauptprojekt (eine Routine) und mein Nebenprojekt (FTP Dialog) miteinander zu verbinden.
Dabei soll sich beim drücken der FTP Checkbox der Main ein FTP Dialog öffnen.

Ein Bild findet ihr im Anhang.

Das Hauptprojekt bleibt natürlich so bestehen aber wie binde ich nun den FTP Dialog ein (welcher aber den selben Aufbau wie die ROutine hat)?

----------- Hauptprogramm -----------

Code: Alles auswählen

#include "deviceroutine.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	DeviceRoutine w;
	w.show();

	return a.exec();
}
----------- FTP -----------

Code: Alles auswählen

#include "FTP.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	FTP w;
	w.show();
	return a.exec();
}
Jetzt ist die Frage des Vorgehens. Wie rbinge ich die Funktionalität in ein Projekt?

Danke Daffi[/quote][/list]
Dateianhänge
Unbenannt.png
Unbenannt.png (69.26 KiB) 5782 mal betrachtet
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

daffi hat geschrieben:es geht darum mein hauptprojekt (eine Routine) und mein Nebenprojekt (FTP Dialog) miteinander zu verbinden.
Sollen denn die beiden Projekte für immer in nur einem Projekt weiterentwickelt werden, oder soll die getrennte Entwicklung fortgeführt werden?
Prinzipiell ist das doch total simpel: Willst du eine Applikation brauchst du auch nur eine QApplication. Willst du Funktionalität wieder verwenden, ohne ständig Code rumkopieren zu müssen, bau dir eine Lib mit der Funktionalität (statt direkt einem Executable) und binde sie ein wo immer du sie brauchst. Hatte ich doch auch schon oben geschrieben.
daffi
Beiträge: 23
Registriert: 2. Januar 2011 18:44

Beitrag von daffi »

Ja sie sollen für immer in einem Projekt miteinander verbunden werden.

Mit libs habe ich noch nicht gearbeitet und demzufolge keine Ahnung wie ich das Anwende.

Die beiden haben ja aber beide eine QcoreApp, was es mir nicht leicht mcht diese zu verbinden (zumindest klappt es nicht).
Bis jetzt habe ich versucht das Nebenprojekt als QDialog zu erstellen, das gibg auch soweit ganz gut,nur meldete er dann,dass meine connects nicht mehr gehen.In getrennten Projektenn gingen sie ohne Probleme.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wieder einmal - hier fehlen Grundlagen die rein gar nichts mit Qt zu tun haben... aber hören willst du ja nicht.
Was Du uns zeigst sind zwei Hauptprogramme die jeweils einen Dialog aufrufen. Was ist jetzt das Problem. Der eine Dialog soll den anderen aufrufen - nur was ist daran so schwer? Irgendwo in den einen Dialog muss es einfach eine Funktion geben die den anderen Dialog instanziiert und auruft - fertig. Das beide Sourcen in einer pro-Datei sein müssen ist ja ofensichtlich.
Ich schieb das nach C++ Grundlagen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten