Zitat:
Zitat von Xalir
Controls sind Steuerelemente wie Labels, Buttons, Checkboxes usw.
|
Danke für deine Antwort
Zitat:
Zitat von Xalir
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
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
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
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
... 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.