Ich hab da ma ne Frage. Also QML ist das neue Qt Quick? Mit C++ sollen in Zukunft keine Oberflächen mehr programmiert werden. Aber wie kann es denn sein, das die XML Sachen mit QML schneller sind als die kompilierten Animationen bzw. Oberflächen die mit C++ geschrieben wurden. Kann man in Qt auch Fenster bauen ohne diese üblichen Fensterrahmen, also wie man das von den "modernen" Benutzeroberflächen kennt? Kann man mit QML auch auf die ganzen anderen Komponenten von Qt zugreifen oder braucht man dafür dann weiterhin C++? Damit meine ich so Sachen wie den Sound Layer(der der auch in KDE verwendet wird)?
Nein, QML gehört zu Qt Quick, da hat sich nichts geändert.
Mit C++ sollen in Zukunft keine Oberflächen mehr programmiert werden.
Was die Qt-Macher sich da vorstellen, ist völlig irrelevant. Es gibt genug Leute, die absolut keinen Bock auf Qt Quick haben, und die können so weitermachen mit C++ wie bisher.
Wie wird das eigentlich gemacht? QML bzw. Qt Quick, ist das eine Art XMl oder eine Art Javascript? Wie kann das denn genau so schnell interpretiert werden wie eine native Programmoberfläche? Ich frag mich allgemein wie das geht das diese nativen Webinterfaces genau so schnell sind wie die C++ Oberflächen. Ist es denn wirklich soviel leichter ne Oberfläche mit Webtechniken zu entwickeln?
Die propertys wie 'width' sind interpretiert als Javascript. QtQuick ist nur eine Schnittstelle zu Qt, und einigen speziell auf QML angepassten Elementen (wie Rectangle).
Mit QML + QtQuick (oder eine beliebige andere "Lib") kann man schon ziemlich schnell Resultate erzielen. Das Problem hierbei ist aber, dass man schnell zu javascript only Lösungen tendiert, weil es eben einfacher und schneller geht, man aber dadurch an Performance Einbußen hinnehmen muss.
> Ist es denn wirklich soviel leichter ne Oberfläche mit Webtechniken zu entwickeln? QML ist keine Webtechnik (zum Glück, sonst hätten wir CSS ). Das einzigste, was Web ist, ist die Anlehnung der QPainter API an die von HTML5 der Canvas API und javascript selbst.
QML bzw. Qt Quick, ist das eine Art XMl oder eine Art Javascript?
Der QML Syntax ist ähnliche wie JSON, also ähnlich der JavaScript Objekt Syntax. Mehr oder weniger eine sehr einfache Art grafische Elemente, ihre Eigenschaften und die damit erzeugte Baumstruktur zu beschreiben.
Wie kann das denn genau so schnell interpretiert werden wie eine native Programmoberfläche?
Ein QtQuick Szene wird nicht interpretiert. Wenn eine QML Datei geladen wird, dann wird für jedes darin beschriebene Element ein Objekt einer entsprechende C++ Klasse erzeugt und an der beschreibene Stelle in die Baumstruktur der Oberfläche eingefügt.
Das ist relativ ähnlich zur Verfahrensweise bei QtWidgets, nur dass dort die im Qt Designer erzeugte Beschreibung meistens zur Bauzeit in C++ Code übersetzt wird.
Wie sieht das eigentlich unter Windows 8 heute aus? Benutzt man da jetzt javascript und wie sieht es mit qt und Windows 8 aus? Ist ja fast eine vollkommen neue art Programme zu bauen.
Ich hab da ma ne Frage.
Also QML ist das neue Qt Quick?
Mit C++ sollen in Zukunft keine Oberflächen mehr programmiert werden. Aber wie kann es denn sein, das die XML Sachen mit QML schneller sind als die kompilierten Animationen bzw. Oberflächen die mit C++ geschrieben wurden. Kann man in Qt auch Fenster bauen ohne diese üblichen Fensterrahmen, also wie man das von den "modernen" Benutzeroberflächen kennt?
Kann man mit QML auch auf die ganzen anderen Komponenten von Qt zugreifen oder braucht man dafür dann weiterhin C++? Damit meine ich so Sachen wie den Sound Layer(der der auch in KDE verwendet wird)?
Danke!
Wie wird das eigentlich gemacht?
QML bzw. Qt Quick, ist das eine Art XMl oder eine Art Javascript? Wie kann das denn genau so schnell interpretiert werden wie eine native Programmoberfläche? Ich frag mich allgemein wie das geht das diese nativen Webinterfaces genau so schnell sind wie die C++ Oberflächen. Ist es denn wirklich soviel leichter ne Oberfläche mit Webtechniken zu entwickeln?
QML ist sozusagen wie eine Art Beschreibungssprache in der du vollkommen dynamisch agieren kannst z.B.
Rectangle {
id: rect
width: 10; height: 20
Rectangle {
id: innerRect
width: rect.Width/2; height: funktion_zu_irgendwas()
}
}
Die propertys wie 'width' sind interpretiert als Javascript.
QtQuick ist nur eine Schnittstelle zu Qt, und einigen speziell auf QML angepassten Elementen (wie Rectangle).
Mit QML + QtQuick (oder eine beliebige andere "Lib") kann man schon ziemlich schnell Resultate erzielen.
Das Problem hierbei ist aber, dass man schnell zu javascript only Lösungen tendiert, weil es eben einfacher und schneller geht, man aber dadurch an Performance Einbußen hinnehmen muss.
> Ist es denn wirklich soviel leichter ne Oberfläche mit Webtechniken zu entwickeln?
QML ist keine Webtechnik (zum Glück, sonst hätten wir CSS
Der QML Syntax ist ähnliche wie JSON, also ähnlich der JavaScript Objekt Syntax. Mehr oder weniger eine sehr einfache Art grafische Elemente, ihre Eigenschaften und die damit erzeugte Baumstruktur zu beschreiben.
Ein QtQuick Szene wird nicht interpretiert. Wenn eine QML Datei geladen wird, dann wird für jedes darin beschriebene Element ein Objekt einer entsprechende C++ Klasse erzeugt und an der beschreibene Stelle in die Baumstruktur der Oberfläche eingefügt.
Das ist relativ ähnlich zur Verfahrensweise bei QtWidgets, nur dass dort die im Qt Designer erzeugte Beschreibung meistens zur Bauzeit in C++ Code übersetzt wird.
Hört sich an wie das, was Glade und XAML schon länger machen, nur eben mit JSON.
Wie sieht das eigentlich unter Windows 8 heute aus?
Benutzt man da jetzt javascript und wie sieht es mit qt und Windows 8 aus? Ist ja fast eine vollkommen neue art Programme zu bauen.
Ist kein JSON. Ist eine ganz eigene neue Syntax.