[QT] QtQuick und QML GUI mit 2D Formen zeichnen?



  • Hallo,

    ich möchte gerne ein Qt Programm schreiben das verschiedene 2D Formendarstellen soll. Dazu habe ich ein Beispiel mit der QPainter Klasse gefunden (http://doc.qt.io/qt-5/qtwidgets-painting-basicdrawing-example.html). Die Möglichkeiten damit gefallen mir schonmal ganz gut.

    Ich würde jedoch gerne mit einer qml gui mit QtQuick2 arbeitenund weiß nicht wie und ob QPainter darin eingebettet werden kann. Sollte dies nciht möglich sein, gibt es andere möglichkeiten soetwas mit QtQuick2 zu realisieren? Ich bin beim recharchieren darauf gestosen, dass es wohl Möglichkeiten mit dem Scene Graph von QtQuick2 gibt soetwas zu realisieren. Leider konnte ich noch nichts genaueres herausfinden.

    Ich bin mir nicht sicher ob es wirklich Sinnvoll ist das mit QtQuick realisieren zu wollen und nicht QtWidgets. So wie ich das allerdings verstanden habe geht die intension von Qt schon in die Richtung, dass man alles mit QML realisieren sollte.

    Ich freue mich über Rückmeldung ob und wie ich das machen, gegebenenfalls wären Links zu guten Tutorials oder Beispiele ganz cool.
    Oder bin ich mit QtQuick auf dem Holzweg?

    Vielen Dank



  • Die Intention ist aus meiner Sicht einzig darin begründet, dass Qt bei den Mobile Devices eine wichtigere Rolle spielen will. Da ist es halt einfacher, schnell irgendeine Activity mit Qml zusammenzuklatschen. Ansonsten halte ich das für eine weitgehend uninteressante Spielerei und hab mir die Mühe gemacht, mir das überhaupt mal anzuschauen.



  • Vielen Dank schon mal für deine Antwort.

    Ich hab schon irgendwo so aussagen gelesen, dass QML die klassischen Widgets über kurz oder lang ersetzen sollen. Deshalb habe ich mir gedacht wäre es schlauer mit dem neuen Zeug zu arbeiten.

    Ich interpretiere deine Aussage jetzt eher so, dass das eher nicht so ist sondern, dass das QML nur für mobile anwendungen gedacht ist.
    Es ist doch aber so dass es extra so gemacht ist, dass es auch gut auf Desktops läuft. Ich möchte halt nicht mit etwas Programmieren, das in 2 Jahren abgeschft wird ...

    Angenommen man will jetzt für alle Plattformen etwas Programmieren, dann wäre es doch trotzdem schön so 2D Formen auch in QML einzubauen.
    Ich habe da auch dieses Canvas dingens angeschaut, aber das scheint ja eher für JavaScript zu sein wenn ich das richtig verstanden habe. Ich möchte aber gerne alles hinter der GUI in C++ programmieren.



  • Ich kanns dir nicht genau sagen, weil ich mich mit QML nicht wirklich auseinandergesetzt habe. Aber wir arbeiten an einer sehr großen Software und benutzen Qt und wir haben sicher nicht vor, da in den nächsten 10-20 Jahren irgendwas auf QML umzustellen.
    Außerdem kann ich mit dem Ansatz nicht viel anfangen. Grad QML ist doch JavaScript 😉 Und das will ich nicht. Ich will alles in C++ programmieren, ich will nicht die Hälfte plötzlich in JavaScript Code haben. Das soll nur einfacher für irgendwelche Web Entwickler werden, C++ Entwickler brauchen das nicht. Der alte Designer erzeugt ui Dateien, das ist halt XML und kein Pseudo Json, völlig egal. Aber da ist nur die Beschreibung der GUI drin, keine Logik. Die kann man dann in C++ schreiben. Ich sehe das als Vorteil und nicht als Nachteil. Dann hab ich in C++ eine Klasse, die einen Dialog repräsentiert und da ist alles drin, was man braucht. In die UI Datei brauch ich dann eigentlich nie reinschauen. Jetzt gibts aber plötzlich die Möglichkeit, dass bei QML die Hälfte der Logik irgendwo in JavaScript implementiert ist. Das gefällt mir gar nicht.
    Und außerdem haben wir bei uns praktisch keine "einfache" GUI. Ganz einfache Eingabedialoge kommen sehr selten vor und interessieren dann niemanden, die sind gleich runtergehackt und vergessen. Die meiste GUI die wir haben, ist ziemlich komplex, da hilft auch QML nichts, da muss man sehr vieles einfach ausprogrammieren. Und da will ich das erst recht nicht mit JavaScript mischen.


Log in to reply