Qt Applikation mit Plugins

Gast #6162255
Lesenswert?

Hallo Leute
ich möchte ein etwas grösseres Programm mit Qt erstellen und bin mir 
noch nicht so ganz im Klaren, wie man das richtig/ordentlich macht.
Ich habe ein paar Erfahrungen schon gesammelt mit Qt und Qt Creator, 
aber bisher habe ich immer nur sehr simple Programme gemacht - ein 
einzelnes Fenster, paar Textfelder, ein paar Knöpfe, ...
Jetzt will ich mich mal an einem etwas grösseren Projekt versuchen.
Ich möchte ein GUI haben das ähnlich wie bei einer IDE aufgebaut ist, wo 
unterschiedliche Funktionen in andockbaren Fenstern untergebracht werden 
können.
Und dann wäre es sehr toll, wenn man mit einer Art "Plugin"-System das 
Programm nachträglich erweitern könnte.

Beim ersten Problem weiss ich grundsätzlich, wie man das macht, ABER wie 
löst man den Datenaustausch zu den einzelnen Fenstern elegant? am einen 
Ort muss ich eine Tabelle darstellen, am anderen kommt Text rein, und im 
dritten Fenster soll eine Art Konsole rein kommen, wo man Befehle 
ausführen kann.

Wie muss ich das prinzipiell angehen? gibts da eine Art Framework dafür?
#6162308
Lesenswert?

Hobbyprogrammierer schrieb:
> Beim ersten Problem weiss ich grundsätzlich, wie man das macht, ABER wie
> löst man den Datenaustausch zu den einzelnen Fenstern elegant?

Durch Konzepte wie Model-View-Controller und eine möglichst saubere 
Trennung zwischen der Oberfläche und der Funktionalität.

> Wie muss ich das prinzipiell angehen? gibts da eine Art Framework dafür?

https://doc.qt.io/qt-5/plugins-howto.html
#6171823
Lesenswert?

Für etwas das "IDE-Like" ist kann man die Docker-Widgets benutzten.
Gibt bei den Beispielprojekten z.B. etwas zum MainWindow.
Drag´n´Drop gibts auch noch.
Am besten ist vielleicht die Zusammenfassung von verfügbaren Widgettypen 
zu lesen, sich die Beispiele an zu schauen und dann zu sortieren, 
welches Konzept für einen passt.
#6172063
Lesenswert?

Kontrastor schrieb:
> Rolf M. schrieb:
>> Durch Konzepte wie Model-View-Controller und eine möglichst saubere
>> Trennung zwischen der Oberfläche und der Funktionalität.
>
> Warum sollte man das trennen wollen? Ist ja nicht so, dass man die GUI
> austauschen will/kann.

Das gehört zum Model-View-Controller-Konzept. Wenn ich die selben Daten 
auf unterschiedliche Weise darstellen will, tut man sich sehr viel 
leichter und hat mehr Flexibilität, wenn man die Daten und die damit 
möglichen Aktionen von der Darstellung trennt statt alles irgendwie 
zusammenzuwurschteln.
Es ist außerdem ein allgemeiner Grundsatz für die Entwicklung größerer 
Progrmame mit graphischer Oberfläche, weil es einfach ein sabereres 
Design ist, das dabei hilft, später nicht so limitiert zu sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren