2016-04-23 5 views
0

Das QT-Widget ist sehr zeitaufwendig in Bezug auf die UI-Entwicklung, meine CSS-Blätter haben bereits 3000 Zeilen Code und es ist sehr zeitaufwändig, Änderungen an der Benutzeroberfläche vorzunehmen. Meine Anwendung ist sehr anspruchsvoll in Bezug auf die Leistung, ich dachte über das Einbetten der Widgets in QML nach, um eine einfachere und schnellere Kontrolle über die Benutzeroberfläche zu haben, aber ich mache mir Sorgen um die Leistung, wird es sich lohnen oder ist es nur eine schlechte Übung?Ist es eine schlechte Übung: QML in eine QT-andockbare Widgets-Anwendung einbetten?

Antwort

2

Meine Anwendung ist sehr in Bezug auf Leistung fordern, war ich Denken Sie die Widgets in QML der Einbettung der Benutzeroberfläche zu haben einfacher und schneller Kontrolle, aber ich mache mir wirklich Sorgen über die Leistung, wird sich lohnen der try oder es ist nur schlechte Übung?

Seit Qt 5.1 können wir problemlos QML-View in Qt Widget Container einbetten. Es gibt einen Blog, über den ich vor einiger Zeit gestolpert bin: Combining Qt Widgets and QML with QWidget::createWindowContainer().

In Bezug auf die Leistung, unsicher, welche Art von Leistung für Ihre Anwendung benötigt wird? Insgesamt rendert QML den Bildschirm über OpenGL oder sehr schnell. Auf der anderen Seite muss man bei QML oft mit JavaScript umgehen, was natürlich nicht mit C++ vergleichbar ist. Es gibt jedoch Qt Quick Compiler in kommerziellen Qt eingeführt.

Wie für QWidget-basierte UI vs. QML: Die Diskussion kann ein Ausdruck von Meinungs usw. dann Punkte Einige Überlegung berücksichtigt werden:

  • Entwicklung und Pflege einer Art von UI, entweder Widget oder QML basiert einfacher.
  • Hybrid-UI ist möglich, aber es macht Sinn zu verstehen, was Sie daraus gewinnen können.
  • Die meisten Desktop-Apps sind nur mit Widgets zufrieden.
  • Wenn die App auch auf mobile Plattformen portiert werden soll, macht QML mehr Sinn.
  • Wenn die App sich auf "Touch" verlassen sollte, dann ist QML auch vorteilhafter als Widgets.

der QT-Widget ist sehr zeit in Bezug auf der UI-Entwicklung aufwendig, meine CSS Blätter hat 3000 Zeilen Code bereits und es ist sehr zeitraubend Änderungen an der Benutzeroberfläche zu tun.

Hmm ... sehr stark gestylt Widget-basierte App? Ich kann nur sicher sein, dass diese zwei Konzepte: Widgets und QML sind sehr unterschiedlich, aber beide Widget-Stylesheets und QML sind deklarative Sprache, obwohl anders. Ich bin mir auch sicher, dass jede seriöse App mehr von C++ benötigt und mit QML müssen wir Zeit damit verbringen, C++ - Code mit QML zu verbinden.

und die Verteilung der QML-Anwendungen kann auch ein bisschen komplexer als rein Widget-basiert sein: zum Beispiel müssen Sie Qt maßgeschneiderte bauen OpenGL für bestimmte VMs und Plattformen emuliert unterstützen: die ein interessantes Thema ist. Auch mit Qt Quick-Widgets, die Sie verwenden, sollten Sie sie entweder auf Ressourcen verteilen, die mit der App verteilt sind, oder Sie benötigen Qt Quick Compiler. Und wenn Sie es verwenden, stellen Sie sicher, dass der gesamte QML-Code von ihm kompiliert wurde und dass kein Teil der App weiterhin 'geskriptete' QML verwendet, die in den Ressourcen fehlt. Ich habe Qt 5.5 Quick Compiler in unserer App benutzt und dabei nicht nur einige Fehler gefunden, sondern auch bestimmte Qt Quick Dateien aus dem Framework zusammen mit dem App Installationspaket ziehen müssen. Das ist nicht so schlecht mit Standard-Dynamic Link und windeployqt Werkzeug.Aber eine seriöse App muss oft statisch mit all ihren Abhängigkeiten verknüpft werden und dann können wir das Tool windeployqt nicht verwenden.

Insgesamt geht Qt von Widgets zu QML, aber was wir gewinnen können und wie sehr wir QML in unseren realen Anwendungen brauchen, ist eine lange Diskussion.

Verwandte Themen