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?
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.