GUI in mehrere Klassen aufteilen (Promote)

Alles rund um die Programmierung mit Qt
Antworten
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

GUI in mehrere Klassen aufteilen (Promote)

Beitrag von Ozzy »

Hi,

ich habe mal eine Frage an die Erfahrenen unter Euch: und zwar möchte ich gerne meine GUI in mehrere Klassen aufteilen um sie vom Code her übersichtlicher zu gestalten und ggf. Bereiche auszutauschen. Ich habe auf der Suche im Netz die Möglichkeit des "Promoten" gefunden. Ich erstelle also z.B. eine neue Form (Frame), und packe da meine Objekte rein (Labels, Button, etc.). In meiner Mainform erstelle ich dann ein Widget in der benötigten Größe und Promote das dann an meine neue Form. Das funktioniert auch genau so wie ich es mir vorstelle, aber ich frage mich ob ich dabei etwas übersehe und mir da vielleicht irgendetwas auf die Füsse fällt. Habt Ihr mit so etwas Erfahrungen oder kann man das genau so machen?

Viele Grüße
Ozzy
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: GUI in mehrere Klassen aufteilen (Promote)

Beitrag von RHBaum »

meine GUI in mehrere Klassen aufteilen
Ich vermute mit GUI meinst du ein Fenster- eine Ansicht - ein Formular - in der QTWelt: ein widget ?

Und ja das kannst DU .... macht oftmals sogar Sinn ^^

Du kannst dein Mainform im Designer layouten.
Und den "Bereich" für die SubForm deklarierst du als QWidget (freies WIdget).
Dieses Widget kannst du dann zu einer Benutzerdefinierten Klasse "wandeln" (glaub damit ist das Promoten gemeint).

Diese Subklasse muss halt nur nen Qwidget sein und den Standard QWIdet Konstruktor besitzen. Das wird sie in deinem MainForm automatisch ueber das UI mit erzeugt.
Die SUbform selber kann dann unabhaengig mittels designer oder auch manuell layoutet werden.

DIe andere Vorgehensweisse ist, man laesst im Mainform das Widget als QWidget und erzeugt beim initialisieren / CTOR selber eine Instanz von der SUbform und Layoutet sie manuell in das "freie widget" hinein.
Das bringt 2 Vorteile:
- Man braucht keinen QWIdget kompatiblen Konstruktor (macht oft sinn mehrere Dinge per konsturktor parameter festzunageln)
- Man kann dynamisch zur laufzeit zwischen Subforms entscheiden ^^
Ist aber auch mehr "Arbeit"

Das Aufteilen dfer Forms in Main und mehrere Subwidgets, aka Benutzerdefinierte widgets, macht insbesondere dann viel sinn, wenn man Subwidgets mehrfach in mehreren Mainforms verwenden kann/will, oder wenn die Subwidgets ne recht komplexe eigenstaendige Logic haben, die es zu Kapseln lohnt ....

Ciao ...
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Re: GUI in mehrere Klassen aufteilen (Promote)

Beitrag von Ozzy »

Hi vielen Dank für Deine ausführliche Antwort!
Antworten