Vorgehensweise für modulare GUI Programmierung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 21. Oktober 2008, 11:07

snafu hat geschrieben:Aber gehört nicht genau das zu den "einfachen" Frames, von denen du vorher gesprochen hast und wo der Designer angeblich geeigneter wäre?
Ich meine damit eher das was sich zwischen Toolbar und Statusbar abspielt. Es gibt Programme mit einer mehr oder weniger statischen Oberfläche. Die hat man mit dem Designer sicher bequemer erstellt. Oder auch Dialoge lassen sich bequem erstellen.

Aber nehmen wir den Designer doch mal selber. Der besteht aus einem CentralWidget in dem man "designed" und rings herum Dock Widget deren Inhalt selbst meist aus wenigen Widgets besteht die zudem noch zur Laufzeit gefüllt werden. Wenn jetzt noch dazu kommt das die Editoren im CentralWidget oder die Dock Widgets Menus oder Toolbars einfügen ist man mit dem Designer schnell am Ende. Ist zumindest meine Meinung. Korrigiert mich sollte es nicht so sein.
Benutzeravatar
snafu
User
Beiträge: 5440
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 21. Oktober 2008, 11:43

Du meinst z.B. dass Editor X drei andere Symbole als Editor Y in die Toolbar einfügen soll, sobald er aufgerufen wird? Da würde ich persönlich eher mit dem Designer alle Symbole, die möglich sind, in die Toolbar einsetzen und anschließend die speziell auf einen bestimmten Editor ausgelegten Symbole im Konstruktor deines Programms ausblenden. Wenn ein bestimmter Editor dann seine "eigenen" Symbole benötigt, kann er sie mittels show() anzeigen. Mit vorher festgelegten Layouteigenschaften für deine Toolbar (was im Designer ein paar wenige Mausklicks bedeutet) hätte man auch keine Lücke, sondern er würde die Symbole in der Toolbar bei Bedarf verschieben. Du müsstest also nicht mal darauf achten, dass ein Symbol bei seiner Erstellung eventuell ein anderes Symbol überlappen könnte. Selbstverständlich ist das kein Designer-internes Hokuspokus, sondern es werden den Objekten auch nur Eigenschaften zugewiesen, die man genau so gut mit einem beliebigen Editor programmieren kann, wenn man denn möchte. Ich persönlich finde GUI-Programmierung aber eher nervig und kümmere mich lieber um die Logik des Programms als um die genaue Position der grafischen Elemente. "Position" ist hier natürlich nicht zu verwechseln mit "Anordnung". Denn die spielt ja schon eine wichtige Rolle.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 21. Oktober 2008, 11:55

Sicher, so könnte man es auch machen. Aber wie gesagt, es ist eigentlich müßig Argumente für oder gegen einen Designer auszutauschen weil jeder eigene Vorlieben und Vorstellungen hat.
snafu hat geschrieben:Ich persönlich finde GUI-Programmierung aber eher nervig und kümmere mich lieber um die Logik des Programms als um die genau Position irgendwelcher Elemente.
So denken leider viele weshalb viele GUI Tools, vor allem unter Linux, doch eher bescheiden sind und viele (zurecht) sagen das die Konsole besser ist. Eine durchdachte GUI macht halt Arbeit, egal ob man einen Designer verwendet oder nicht. Ich ärgere mich hier zb tagtäglich über eine (teure) Windows Software bei der die GUI auch nicht besonders gelungen ist worunter die Bedienung leidet. Sicher, man kann es nie allen recht machen, aber man kann es zumindest versuchen.
BlackJack

Dienstag 21. Oktober 2008, 12:04

@snafu: Das ist aber nicht wirklich skalierbar. Um im Designer alle Symbole für mögliche Editoren in eine Toolbar zu stecken, müsste man ja schon wissen was die Editoren für Symbole haben. Nicht besonders flexibel. Dieses Wissen gehört in den einzelnen Editor, und nicht in die Haupt-GUI.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 21. Oktober 2008, 12:07

BlackJack hat geschrieben:@snafu: Das ist aber nicht wirklich skalierbar. Um im Designer alle Symbole für mögliche Editoren in eine Toolbar zu stecken, müsste man ja schon wissen was die Editoren für Symbole haben. Nicht besonders flexibel. Dieses Wissen gehört in den einzelnen Editor, und nicht in die Haupt-GUI.
Das sowieso. Und man weiß ja zum Design Zeitpunkt vielleicht nichtmal was noch alles dazukommt. So muss man halt jedes mal den Hauptframe anfassen um etwas zu ändern.

Als ich vor 3-4 Jahren noch unter Windows mit dem Visual Studio .NET rumhantiert hab wollte ich das auch immer so machen. Schön alles mit dem Designer zusammenklickern und in den Frame quetschen. Mittlerweile denke ich halt anders darüber
Benutzeravatar
snafu
User
Beiträge: 5440
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 21. Oktober 2008, 12:14

@burli: Vielleicht auch weil sich viele Programmierer nicht so sehr als Designer sehen und dann lieber die grafische Umsetzung ihres Programms anderen Leuten überlassen.

@BlackJack: Stimmt, mir ist auch später bewusst geworden, dass so eine Toolbar, die alle Symbole vorher drin hat, mit der Zeit auf ganz schön lang werden könnte. Da überwiegt dann sicher auch irgendwann die Unübersichtlichkeit im Entwicklungsprozess der GUI. So aus dem Bauch heraus hätte ich aber trotzdem erstmal diesen Weg probiert und wahrscheinlich entsprechend meine Erfahrungen gemacht (die im Hinblick auf GUIs bei mir noch relativ gering sind).
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 21. Oktober 2008, 12:27

snafu hat geschrieben:@burli: Vielleicht auch weil sich viele Programmierer nicht so sehr als Designer sehen und dann lieber die grafische Umsetzung ihres Programms anderen Leuten überlassen.
Ich bin gerade dabei mich in PyQt einzuarbeiten. Ich will einen eigenen Audio Player schreiben der "meinen" Vorstellungen von einem idealen Player möglichst nahe kommt. Dazu zählt auch die Oberfläche.

Wenn ich dann mal einigermaßen Sattelfest bin kann ich ja mal bei einem Community Projekt mitarbeiten und die GUI übernehmen, sofern PyQt im Spiel ist.
Antworten