Verwaltung/Steuerung von Fenstern



  • Hallo CPP Community!

    Bin gerade dabei mein kleines Projekt zu beginnen. Es soll eine GUI-Anwendung werden und darin kommen mehrere Fenster vor. In der Schule hatte ich in einem
    Softwareprojekt die Aufgabe die Fensterverwaltung zu übernehmen. Aus bestimmten Gründen habe ich da eher was zusammengehackt anstatt eine Lösung zu implementieren, die man allgemein wiederverwenden kann. Nun bin ich auf der Suche nach einer allgemeinen Vorgehensweise. Ich habe mir schon selber darüber Gedanken gemacht und würde in Richtung MVC-Pattern gehen oder gibt es da speziell für diesen Fall ein eigenes Pattern?

    Als Programmiersprache nehme ich C++ mit Qt, gibt es speziell von Qt aus schon vielleicht Mittel die solche Aufgaben übernehmen?

    Ich wollte mich nur vorher beraten lassen/informieren bevor ich wieder etwas frickle, ich will das schon in der Zukunft wiederverwenden können.

    Hoffentlich ist allen Lesern klar was genau ich mit Fensterverwaltung meine.

    Hier mal bisschen abstrakt in Pseudocode wie ich mir das vorstelle:

    displaywindow(formtype)
    {
      ...
    
      switch(formtype)
      {
        case 'config': configwindow confwin = new configwindow();
                       confwin->show();
                       break;
        case 'foobar': ...
    
      }
    }
    


  • QtDesigner oder wie das Teil heißt?



  • 314159265358979 schrieb:

    QtDesigner oder wie das Teil heißt?

    Damit entwirft man nur die Fenster soweit ich weiß



  • Qt4 unterstützt selbstverständlich auch MVC: http://doc.qt.nokia.com/qq/qq10-mvc.html
    Jedoch dient das ja mehr der generellen Trennung von GUI und Logik.

    Bei deiner Fensterverwaltung solltest du dir mal das "(Abstrakte) Fabrik"-Design Pattern anschauen: http://de.wikipedia.org/wiki/Abstract_Factory bzw. http://de.wikipedia.org/wiki/Factory_Method



  • Habe mir jetzt den Wiki-Artikel über die Abstrakte Fabrik angeschaut und ziehe mir noch ein paar Code Samples rein,
    das ist eigentlich genau das was ich brauche ( wenn ich das Muster richtig interpretiert habe 🙂 )

    Vielen Dank @Th69 !


Anmelden zum Antworten