Hallo Leute, ich habe bisher für GUI-Anwendungen :NET verwendet und habe mit zuerst die GUI gestaltet, d.h. alle Buttons, Labels, Views,... platziert und diese dann im Source Code "angesprochen". Nun wollte ich auf Qt umsteigen und habe mir dazu einige Tutorials und Beispiele angeschaut. Dabei ist mir aufgefallen, dass oftmals gar nicht der GUI Designer zum Einsatz kommt, sondern alle Bedienelemente direkt im Source Code erzeugt und platziert werden. In dieser Methode sehe ich als Anfänger da keine Vorteile, eher im Gegenteil. Könntet ihr mir sagen, warum viele alles im Source Code machen? Danke, Maxi
Maxi schrieb: > In dieser Methode sehe ich als Anfänger da keine Vorteile, eher im > Gegenteil. Könntet ihr mir sagen, warum viele alles im Source Code > machen? So wie ich das sehe gibt es nur einen Grund Controls im Sourcecode zu erzeugen: Nämlich dann, wenn diese erst zur Laufzeit bekannt sind, das GUI also dynamisch aufgebaut werden soll. Aber das sollte eigentlich die Ausnahme sein. Und wenn, dann sollte nicht mehr passieren als ein paar User-Controls in ein Layout zu instantiieren... Ich vermute also Unwissenheit oder Unkenntnis des UI-Design-Tools hinter diesem Vorgehen ;-)
Ich finde den Qt Desginer relativ unangenehm, da ist Visual Studio deutlich komfortabler, deswegen entwerfe ich kleine Dialoge lieber direkt im Code. Wenn man sich einmal dran gewöhnt hat geht das auch wirklich schnell.
Boris P. schrieb: > Nämlich dann, wenn diese erst zur Laufzeit bekannt sind, das GUI also > dynamisch aufgebaut werden soll. Das sehe ich ein und so habe ich das bisher auch gemacht. Bedienelemente die fest auf einer Seite sind habe ich direkt platziert und wenn dann mal ein Pop Up hochkommen soll habe ich das im Code realisiert. Bin mal gespannt auf weitere Antworten. Boris P. schrieb: > Ich vermute also Unwissenheit oder Unkenntnis des UI-Design-Tools hinter > diesem Vorgehen ;-) Naja es waren auch Vorlesung aus dem Mssterstudiengang einer sogennanten Elite-Uni dabei^^ War nur Spaß. Wie gesagt ich habe mir verschieden Vorlesungen angeschaut und die meisten haben zwar gezeigt, dass es den GUI Designer gibt aber ihn halt nicht verwendet.
foobar schrieb: > Ich finde den Qt Desginer relativ unangenehm, da ist Visual Studio > deutlich komfortabler, deswegen entwerfe ich kleine Dialoge lieber > direkt im Code. Wenn man sich einmal dran gewöhnt hat geht das auch > wirklich schnell. Da ich auch gerade mit QT rumspiele (und es nicht wirklich mag), meine Meinung dazu: Der Creator ist in der aktuellen Version gar nicht schlecht. Anscheinend ist das aber erst seit den letzte Versionen so. Früher war IDE und Designer nicht integriert, und daher hat das kaum jemand benutzt. Die allermeisten Beispiele im Netz stammen halt aus der Zeit, als den Designer niemand nutzen wollte. Allerdings ist auch heute der Aufwand, ein paar Buttons "von Hand" in ein Layout zu packen, am Ende auch nicht größer, als da im Creator eine Form anzulegen, und auf die Elemente darin zuzugreifen. Schau dir einfach mal den Code an, der vom Creator für die Form erzeugt wird. Das ist so wenig, die paar Zeilen sind auch schnell von Hand geschrieben. Oliver
Oliver S. schrieb: > Schau dir einfach mal den Code an, der vom Creator für die Form erzeugt > wird. Das ist so wenig, die paar Zeilen sind auch schnell von Hand > geschrieben. Aber mit dem Designer habe ich doch weniger Aufwand, weil ich zum Beispiel Spacer einsetzen kann. Also ich kann mit die Oberfläche direkt "schön" gestalten und muss nicht im Code jede Position berechnen/bestimmen und dann compilieren, um zu sehen ob mir die Anordnung dann gefällt. Oliver S. schrieb: > Anscheinend > ist das aber erst seit den letzte Versionen so. Der Designer ist doch schon länger enthalten, mal mindestens ab 4.0 wenn nicht sogar noch früher
Ich kann dir von meinen Erfahrungen mit iOS berichten: Solange eine Applikation fast nur UI-zentriert ist und keine komplexeren Anwendungsfaelle hat, geht das mit dem UI-Designer problemlos. Das bei vielen kleinen Apps und vor Allem den Tutorials der Fall. In der Praxis mit komplexeren Apps zeigt sich dann aber schnell, dass der UI-Designer recht limitiert ist und sich viele Dinge damit gar nicht realisieren lassen. Da laeuft man dann oft erst in spaeteren Entwicklungsphasen auf. Und wenn einem das ein paar Mal passiert ist, verzichtet man beim naechsten Projekt gleich darauf. Entwickler haben sowieso ein gutes Abstraktionsvermoegen, da ist die graphische sichtbare Darstellung meist gar kein echter Vorteil.
Maxi schrieb: > Oliver S. schrieb: >> Schau dir einfach mal den Code an, der vom Creator für die Form erzeugt >> wird. Das ist so wenig, die paar Zeilen sind auch schnell von Hand >> geschrieben. > > Aber mit dem Designer habe ich doch weniger Aufwand, weil ich zum > Beispiel Spacer einsetzen kann. Also ich kann mit die Oberfläche direkt > "schön" gestalten und muss nicht im Code jede Position > berechnen/bestimmen und dann compilieren, um zu sehen ob mir die > Anordnung dann gefällt. Man kann doch genauso im Quellcode ein QSpacerItem einsetzen. Wo ist da das Problem? Und was soll man da berechnen müssen? Früher habe ich die GUIs fast ausschließlich im Quellcode gemacht. Ich war das dann so gewöhnt, und es ging schnell von der Hand. Inzwischen nutze ich aber auch meistens den Designer. Zum Teil mache ich die GUIs sogar noch dynamischer, indem ich die ui-Files zur Laufzeit reinlade und gar nicht mehr in C++-Code übersetzen lasse.
Rolf Magnus schrieb: > Wo ist da > das Problem? Und was soll man da berechnen müssen? Naja ich muss doch sagen, wo der Button liegen soll. Das man Spacer auch im Code einsetzen kann wusste ich nicht. Bin ja noch nocht so fit mit Qt. Also ist es doch nicht so ungewöhnlich, GUIs im Code zu gestalten.
Letztendlich wird die GUI immer im Code erzeugt. Die Frage ist nur ob man diesen Code selber schreibt.
Ich habe mich auch lange gegen den Designer gewehrt und alles händisch implementiert. Irgendwann habe ich dann aber festgestellt, dass der Designer die Entwicklung einer Oberfläche doch stark beschleunigt (Weil man sich eben die ganze "Fleißarbeit" spart) und vor allem der eigene Code deutlich schlanker und übersichtlicher wird. Das Einzige was ich als nervig empfinde ist das nachträgliche Einfügen von Widgets in verschachtelte Layouts. Da bleibt oft nur das Aufbrechen und neu anordnen.
Maxi schrieb: > Rolf Magnus schrieb: >> Wo ist da das Problem? Und was soll man da berechnen müssen? > > Naja ich muss doch sagen, wo der Button liegen soll. Das macht man wie beim Designer auch mit einem Layout, das sich automatisch um die Positionierung kümmert.
Also ist es doch gar nicht so unüblich alles im Code zu machen. Dann werde ich das bei meinem nächsten Projekt mal aufgreifen und ebenfalls versuchen alles ohne den Designer zu machen.
Maxi schrieb: > Also ist es doch gar nicht so unüblich alles im Code zu machen. Die Frage ist so offen gestellt, dass du keine deutlichere Antwort bekommen wirst ;) ich programmiere seit einiger Zeit QT für Embedded und habe den Designer noch nie verwendet. Die Applikation verwendet eine nicht allzu komplexe und pragmatische GUI und das lässt sich auch gut und leicht im Code erzeugen. Es kommt darauf an wie gut das Zusammenspiel von Widgets und Layouts,deren Verschachtelung und die Möglichkeiten irgendwas nach sonstewo auszurichten verstanden wurde. Ich kenne dazu auch unmögliche Gegenbeispiele, wo der Designer wohl besser gewesen wäre. Kommt also ganz auf persönliche Vorlieben, Fähigkeiten und das konkrete Projekt an was denn nun vermeintlich einfacher ist.
Rob Chelby schrieb: > Kommt also ganz auf persönliche Vorlieben, Fähigkeiten und das konkrete > Projekt an was denn nun vermeintlich einfacher ist. Stand heute wird es eine GUI mit ca. 8 Seiten. Ich gehe aber davon aus, dass es in der Zukunft bis zu 15 Seiten werden.
Maxi schrieb: > Aber mit dem Designer habe ich doch weniger Aufwand, weil ich zum > Beispiel Spacer einsetzen kann. Also ich kann mit die Oberfläche direkt > "schön" gestalten und muss nicht im Code jede Position > berechnen/bestimmen und dann compilieren, um zu sehen ob mir die > Anordnung dann gefällt. Ganz ehrlich, da bist du bei QT falsch. QT ist ein plattformübergreifendes Framework, das ist sowieso nicht für pixelgenaue Layoutgestaltung gedacht. Ohne Layouts geht da fast gar nichts, und mit Layouts macht das eh, was es will. Es hindert dich ja niemand, den Designer zu benutzen. Alles geht, nichts muß. Oliver
:
Bearbeitet durch User
Moin, ein Hauptgrund für die Erstellung der GUI im Sourcecode ist gerade bei kleinen Beispielprojekten, dass so nicht noch extra eine .ui-Datei nötig wird. Gerade wenn nur zwei, drei Elemente angeordnet werden sollen oder einfach nur ein Menü aufgebaut wird, geht das oft genauso gut im Code. (Menü z.B. mit QKeySequence die Standardshortcuts des Systems verwenden). AUßerdem geht es in den meisten Beispielen um Code, bzw das "wie", nicht um Optik. Grüße Andreas Lang
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.