myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Welche Programmiersprache für eine GUI mit Animationen

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 02.08.12, 08:42   #1
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Was genau versteht man unter Controls? Sind dass so etwas wie Container für andere Elemente?

Denn wenn ich den Text in einem Label ändere, und dieser in einem Layout enthalten ist, wird die größe des Widgets, automatisch mit verändert, wenn ich den Text "zu lang" mache (will ich dass nicht, kann ich dies auch sperren. Auch wenn ich die Größe von einem Element innerhalb eines Layouts ändere, werden alle anderen Elemente (entsprechend der Einstellungen) mit verändert.

Ich hab zwar noch nicht verstanden was Controls bei WPF sind, aber wenn es dass ist, was ich oben beschrieben habe, dann ist es wohl nicht mehr der größte Vorteil von WPF ...

Das Trennen von Design und Logik ist ebenfalls möglich entweder mit UI-Designe (XML ähnlich, für ein Beispiel, siehe oben den Quellcode [widget.ui]) oder neu mit Qt Quick (mit seiner Skriptsprache QML; ähnlich zu JavaS*****). Aber seit wann kann ein Grafiker (der mit Photoshop arbeitet) XML? Ein Web-Designer kann dass sicher, aber ein Grafiker? Wie oben schon gesagt, hängt es da dann wohl eher von der IDE ab, da einem diese viel von der Schreibarbeit abnehmen kann aber wenn man alles von Hand macht, wird sich Qt und WPF wohl nicht viel nehmen, in der Erstellung von Designs.
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 02.08.12, 14:46   #2
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von slahn Beitrag anzeigen
Was genau versteht man unter Controls? Sind dass so etwas wie Container für andere Elemente?
Controls sind Steuerelemente wie Labels, Buttons, Checkboxes usw.

Zitat:
Denn wenn ich den Text in einem Label ändere, und dieser in einem Layout enthalten ist, wird die größe des Widgets, automatisch mit verändert, wenn ich den Text "zu lang" mache (will ich dass nicht, kann ich dies auch sperren. Auch wenn ich die Größe von einem Element innerhalb eines Layouts ändere, werden alle anderen Elemente (entsprechend der Einstellungen) mit verändert.
Passiert dies auch zur Laufzeit? Konkret: Passen sich die Elemente automatisch an, sobald ich zur Laufzeit die Sprache ändere? Oder die Auflösung oder die DPI?
Meine Zeiten mit Qt liegen etliche Jahre zurück, von daher weiß ich nicht, ob Qt ebenfalls die Möglichkeiten hat.

Zitat:
Das Trennen von Design und Logik ist ebenfalls möglich entweder mit UI-Designe (XML ähnlich, für ein Beispiel, siehe oben den Quellcode [widget.ui]) oder neu mit Qt Quick (mit seiner Skriptsprache QML; ähnlich zu JavaS*****). Aber seit wann kann ein Grafiker (der mit Photoshop arbeitet) XML? Ein Web-Designer kann dass sicher, aber ein Grafiker? Wie oben schon gesagt, hängt es da dann wohl eher von der IDE ab, da einem diese viel von der Schreibarbeit abnehmen kann aber wenn man alles von Hand macht, wird sich Qt und WPF wohl nicht viel nehmen, in der Erstellung von Designs.
Es ging mir nur um deinen Vergleich mit dem Fleischer und Zuckerbäcker. Wie bereits gesagt, mit WPF kannst du jemanden einstellen, der sich mit XML auskennt, aber von der Programmierung keinen blassen Schimmer hat. Designer können nur mit XAML komplexe Animationen erstellen, ohne eine Zeile Code zu schreiben. Ob man das mit einem einfachen XML-Editor macht oder mit Expression Blend (Das Photoshop für WPF-Designer) ist jedem selbst überlassen.

Zitat:
Wenn wir Frameworks vergleichen wollten, sollte man erstens gleichwertige Frameworks vergleichen (was dann Qt "vs" WPF + .Net wäre) und bei gleichwertigen Entwicklungstools (als am besten und leichtesten wäre es dann wenn wir kein Entwicklungstool verwenden -> einen Texteditor (jedoch für beide den selben)).
Du könntest zum Beispiel mit Vim eine UI für Windows designen, und über die Datei den .NET-Compiler jagen. Bei Qt ist es ja ähnlich, nur das man da einen C++-Compiler nimmt.

Soweit ich Dich jetzt aber verstanden habe, ist das XML-Design mit Qt aber nicht nativ. Das heißt, Du nimmst ein Hilfsmittel, welches das XML in für Qt verständlichen Code umwandelt.
Xalir ist offline   Mit Zitat antworten
Ungelesen 02.08.12, 16:05   #3
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Xalir Beitrag anzeigen
Controls sind Steuerelemente wie Labels, Buttons, Checkboxes usw.
Danke für deine Antwort


Zitat:
Zitat von Xalir Beitrag anzeigen
Passiert dies auch zur Laufzeit? Konkret: Passen sich die Elemente automatisch an, sobald ich zur Laufzeit die Sprache ändere? Oder die Auflösung oder die DPI?
Meine Zeiten mit Qt liegen etliche Jahre zurück, von daher weiß ich nicht, ob Qt ebenfalls die Möglichkeiten hat.
Ja, passiert zur Laufzeit, hab es getestet. Da ich aber selbst erst neu bin bei Qt kann ich dir nicht sagen seit wann es das kann.



Zitat:
Zitat von Xalir Beitrag anzeigen
Es ging mir nur um deinen Vergleich mit dem Fleischer und Zuckerbäcker. Wie bereits gesagt, mit WPF kannst du jemanden einstellen, der sich mit XML auskennt, aber von der Programmierung keinen blassen Schimmer hat. Designer können nur mit XAML komplexe Animationen erstellen, ohne eine Zeile Code zu schreiben. Ob man das mit einem einfachen XML-Editor macht oder mit Expression Blend (Das Photoshop für WPF-Designer) ist jedem selbst überlassen.
Mein Vergleich kommt daher, da ich gefragt wurde ob es auch ein Photoshoper kann. Aber bei Qt und auch bei WPF handelt sich es um ein Framework und dazu braucht man einen Programmierer. Wenn man diese Aufgabe wirklich einem Designer überlassen will, braucht man eben das dementsprechende Entwicklertool. Einen Post darüber habe ich schon erklärt, dass hier anscheinend WPF mit einem Entwicklertool verwechselt wird. Und wenn behauptet wird, dass man nur mit WPF, ohne eine Zeile Code oder XML (XAML), ein Design hin bekommt, dann fängt für mich Zauberei an. Denn Irgendwer muss es schreiben und in eurem Fall (also bei WPF) macht es eben Microsoft Visual Studio 20xx. Aber nochmal, deswegen ist nicht WPF toll (weil man ohne Programmierkenntnisse arbeiten kann), sondern Microsoft Visual Studio 20xx.

Aber ich muss schon zugeben (nach einigem nachlesen), dass WPF eindeutig konsequenter ist, bei der Trennung von Design und Programmlogik. Jedoch muss man dazu eben auch sagen, dass WPF eben reines Grafik-Framework ist und teil es Anwendungs-Frameworks namens .Net ist. Qt ist aber so wie .Net auch ein Anwendungs-Frameworke und somit ist der vergleich zwischen WPF und Qt unmöglich. Jedoch arbeitet Qt seit Version 4 an Qt Quick, welches so wie WPF eine konsequente Trennung ermöglichen soll. Somit könnte man grob sagen (unbeabsichtigt von den genauen Leistungsumfängen der einzelnen Frameworks/Bibliotheken) dass WPF = Qt Quick und .Net = Qt.


Zitat:
Zitat von Xalir Beitrag anzeigen
Du könntest zum Beispiel mit Vim eine UI für Windows designen, und über die Datei den .NET-Compiler jagen. Bei Qt ist es ja ähnlich, nur das man da einen C++-Compiler nimmt.

Soweit ich Dich jetzt aber verstanden habe, ist das XML-Design mit Qt aber nicht nativ. Das heißt, Du nimmst ein Hilfsmittel, welches das XML in für Qt verständlichen Code umwandelt.
Ja, du hast recht, XML wird nativ unterstützt. Dass liegt aber nicht an Qt, sondern am C++ Standard. Da Qt sich als Ziel gesetzt hat, mit dem C++ Standard konform zu bleiben, kann XML auch nicht nativ unterstützt werden. Dafür bietet Qt verschiedene Präprozessoren, welche dann aus dem nicht C++ Standard Code, einen Standard konformen Code machen. Diese sind dann eben total unübersichtlich und unverständlich, was aber nicht schlimm ist, da man damit ja nicht arbeiten muss sondern nur der Compiler.
Wie du ja richtig erkannt hast, brauchst du für .Net einen eigenen Compiler (eigentlich einen JIT, so wie Java eben), der CLI versteht. Qt könnte auch sagen ... wir bauen einen eigenen Compiler und nennen den dann z.B. Qt Compiler (der dann nur Qt-Code versteht) ... Dadurch wäre man aber auf diesen beschränkt. Bei Qt kann man ganz einfach mit eigentlich jedem [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] arbeiten. Sollte mir der eine zu schlecht optimieren, nehme ich einen anderen; Ist mir der dann zu teuer, kann ich wieder einen anderen nehmen ...

Somit hast du mich aber auch etwas falsch verstanden ... du musst nichts für Qt verständlich machen ... Qt muss für den C++ Standard verständlich gemacht werden. Darum gibt es viele kleine Einheiten, die aus Qt-Code (der sehr, sehr nahe an C++ ist; aber auch kleine Schlüsselwörter hat, der den Code übersichtlicher macht) ISO C++ Standard konformen Code macht ([ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] eine kurze Erklärung; alles was im Bild grün ist, kommt von Qt dazu). Es gibt aber auch für .Net (CLI) ebenfalls schon Programme, welche versuchen aus dem CLI, einen ISO C++ Standard konformen Code zu generieren. Oder Qt-Code, nach CLI zu wandeln ...

Was für Ansätze jetzt besser sind (neuer Compiler) oder Umwandlung in einen allgemeinen Standard, muss jeder für sich entscheiden. Ich habe halt lieber allgemeine Standards, da man diese leichter auf andere Systeme Portieren kann.





@ProgMaster:
Du hast recht, ein UI-File kann ich nur schwer bis gar nicht zur Laufzeit laden. Dazu war es aber auch nie gedacht. die UI-Files sollen bei der Entwicklung, das Design von der Logik zu trennen (zumindest ein wenig). Seit Qt4 hat man gesehen dass eine komplette Trennung viel besser ist. Darum hat man Qt Quick "erfunden". Damit kann man auch zur Laufzeit, das Aussehen verändern und erlaubt sogar Animationen.
Code:
QDeclarativeView *view = new QDeclarativeView;
 view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
 view->show();
Das war es dann auch schon, für das Laden des Designs. Jetzt kann jeder sein eigenes Design schreiben und wenn man die QUrl vorher dynamisch abfragt, kann man diese dann auch nach dem Start laden.

Ich sage auch nicht dass man Entwicklertools ignorieren soll, aber WPF ist eben keines. Du hast mit deiner Aussage (siehe Zitat unten) aber eben falsche Versprechen gemacht ... WPF funktioniert nicht ohne Code (in dem Fall jetzt XAML). Diesen Code hast du halt zuvor auch mit Microsoft Visual Studio 20xx erzeugt (was man ebenfalls als "schreiben" interpretieren kann). Genau das kann aber auch Qt Designer und (wenn auch sicher nicht zu 100% gleich).
Zitat:
Zitat von ProgMaster Beitrag anzeigen
Genau das ist eben mit WPF möglich, und das versuchen wir dir gemeinsam zu erläutern. Man kann ohne XML und ohne Code zu schreiben sogar während die Anwendung läuft Styles, Layouts vornehmen.
Aber du hast dir mit deiner Vorherigen Aussage gleich mal selbst ein Eigentor geschossen ...
Zitat:
Zitat von ProgMaster Beitrag anzeigen
... Für JEDE UI-Bibliothek kann man selbst so ein Hilfsmittel erstellen, weshalb deine Argumentation einfach unsinnig ist. ...
Eben, man kann für jedes Framework "solche Hilfsmittel" (auch Entwicklungstool genannt) erstellen. Darum was soll das mit dem ob man dass ohne Erstellung von Code kann? Denn ... NEIN, dass kann Qt NICHT, aber WPF auch NICHT!

Animationen so wie es der TS gefordert hat (Farbe ändern, Hintergrund ändern ...) kann jedes Grafik-Framework. Du hast aber ganz am Anfang gesagt, dass das eben nur WPF kann. Eigentlich versuche ich hier nur richtig zu stellen, dass das einfach nicht stimmt (Qt verwende ich eben nur deswegen als Beispiel, da ich mit anderen Grafik-Frameworks noch viel weniger Erfahrungen habe als ich es mit Qt habe).

Übrigens würde mich interessieren auf welchen Punkt ich nicht eingegangen bin? Habe eigentlich immer versucht auf jeden Punkt voll und ganz einzugehen. Sorry, wenn ich mal wirklich was vergessen habe.
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.


Sitemap

().