Fenster als eigene Klasse ableiten
-
In fast allen GUI-Bibliotheken wird in Tutorials ein Fenster irgendwann als eigene Klasse, die von der eigentlichen Fenster-Klasse abgeleitet ist, geschrieben, obwohl das GUI auch anders geschrieben werden könnte.
Welche Vorteile hat man davon?
-
Kapselung und Wiederverwendbarkeit. Wie könnte man auf die Idee kommen, ein Fenster irgendwo im Code aus Controls zusammenzubasteln? Es wird in einer entsprechenden Klasse gekapselt, an anderen Stellen will man überhaupt nichts über die Internas wissen.
-
Also nicht aus speziellen, Gründen, die mit der Bibliothek zusammenhängen, sondern aus dem allgemeinen Grund, aus dem OOP zum Einsatz kommt.
Hat mir sehr weiter geholfen, danke.
-
Wie ließe sich denn GUI anders schreiben?
Natürlich kannst du auch QML/HTML5 mit C++ Backend als Oberfläche nutzen...
-
phlox81 schrieb:
Wie ließe sich denn GUI anders schreiben?
Ich glaube er wollte darauf hinaus, dass man an der Stelle, wo man ein Fenster aufrufen will statt
CustomerSelectionDialog dlg; dlg.show();
sowas macht:
QDialog dlg; QVBoxLayout layout; dlg.setLayout(&layout); QDialogButtonBox buttonBox; layout.addWidget(&buttonBox); // 10 000 weitere Zeilen, die an der Stelle nichts verloren haben
Und das an jeder Stelle, wo man das Fenster aufrufen will.
-
was ich meinte war folgendes
class eigenes_fenster : windwow { //Buttons oder ähnliches hinzufügen } eigenes_fenster fenster() ;
anstatt
window fenster ; fenster.add() ; //so oder ähnlich Buttons o.ä. hinzufügen
-
Kannst Du auch machen. Macht sogar oft Sinn (wenn Du public erbst).
-
Eisflamme schrieb:
Kannst Du auch machen. Macht sogar oft Sinn (wenn Du public erbst).
Nein, macht keinen Sinn, und was du geschrieben hast passt auch nicth zu dem, was er geschrieben hat.
Was er geschrieben hat, passt aber zu dem was ich vorhin geschrieben habe und was eben keinen Sinn macht.
-
Achso, ich habe es genau andersrum gelesen, aber hast Recht.