Forum: PC-Programmierung Qt Applikation mit Plugins


von Hobbyprogrammierer (Gast)


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?

von Oliver S. (oliverso)


Lesenswert?

Ja. Nennt sich Qt.

Oliver

von Rolf M. (rmagnus)


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

von Jasson J. (jasson)


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.

von Kontrastor (Gast)


Lesenswert?

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.

von Rolf M. (rmagnus)


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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.