Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Unterschiedliches Anzeige/Update-Verhalten VS und QT Creator



  • Hallo Community,

    ich bin neu mit QT und versuche mich gerade ein wenig mit QML.

    Ich habe ein kleines Programm geschrieben, welches Daten über MQTT empfängt und diese dann in einem
    View-Model ablegt. Dieses Model ist in QML erstellt, sodass ich auf die Parameter im QML zugreifen kann.
    (geschrieben in VS mit QT Tools)

    Das funktionert auch alles wunderbar, nur das "Update" der GUI funktioniert nicht. Der Wert verändert sich in dem
    View-Model und soll dann als Text dargestellt werden. Aber leider zeigt mein Textfeld dauerhaft 0.

    Daraufhin, habe ich das gleiche mit dem QT Creator erstellt und siehe da, der Wert kommt an, wird abgespeichert und die
    Oberfläche zeigt ihn direkt an!

    Jetzt stellt sich für mich die Frage, warum ist dieses Verhalten nicht in VS?

    Das gleiche sehe ich auch beim Zeichnen einen Kreises mit diesem Wert als Durchmesser.
    Über VS kein Update des Kreises, im QT Creator wird der Kreis automatisch neu gezeichnet.

    Kennt jemand dieses Verhalten?

    Vielen Dank für eure Hilfe!


  • Lifetime Qt Champion

    @Han_Sikora Benutzt du die gleiche Qt Version und gleichen Compiler in beiden Umgebungen?



  • Hallo,

    ja bei beiden QT 5.12.2 und MSVC2019_64.


  • Lifetime Qt Champion

    @Han_Sikora said in Unterschiedliches Anzeige/Update-Verhalten VS und QT Creator:

    Aber leider zeigt mein Textfeld dauerhaft 0

    Heißt dass du nichts über MQTT bekommst, denke ich?
    Könnte eventuel an unterschiedlichen Umgebungen liegen (Umgebungsvariablen).
    In QtCreator kannst du sehr einfach die "Run"-Umgebung checken, was da so alles gesetzt ist.



  • Also der Wert kommt über MQTT an, wenn ich bspw. meine Zeichnung in einen StackView gebe und diesen dann einmal während der
    Laufzeit manuell pop() und Push() zeigt er den neuen empfangenen Durchmesser an.

    Also Werte kommen an und kommen auch bis in die QML-Objekte (Habe für den Kreis mein eigenens QObject erstellt).
    Aber (nun bezogen auf den Kreis), beim QT Creator ändert sich die Variable und automatisch wird auch der Kreis neugezeichnet.

    In Visual Studio funktioniert dies nicht. Da wird, solange ich nicht manuell das neuzeichnen anstoße, nur der Initialkreis angezeigt.



  • Ich habe nun mein VS Projekt nach QT Creator portiert.
    Dort zeigt sich nun das gleiche Verhalten wie in VS. Sollte ja dann eigentlich irgendeine Einstellung
    sein, oder leige ich da falsch :D


  • Lifetime Qt Champion

    @Han_Sikora Compare pro files of both projects



  • I did, but there is no difference.
    I also checked the Run-Configuration, but no difference :(

    Maybe I just have to start again.


  • Lifetime Qt Champion

    @Han_Sikora Irgendwie sind wir auf English umgestiegen :-)
    Ich habe auch keine Ideen mehr.



  • Alles gut, bin ja froh das jemand mir versucht zu helfen :)

    Ich versuche nun mal den anderen Weg. Das funktionierende QT Projekt in VS zu importieren und damit zu arbeiten.
    Ich melde mich mal nächste Woche.


  • Moderators

    @Han_Sikora
    könnte ne Treiber Geschichte sein, OpenGL & DirektX vielleicht zwingt VS direkt X auf (für QML) während QtCreator via default auf OpenGL zurück fällt ?

    kannst mal schauen, ob qputenv("QSG_RHI", "1"); einen unterschied macht. Sollte (für Desktopsysteme) native QML rendering erzwingen (kein OpenGL mehr)



  • Hat sich erledigt!

    Der Fehler saß dann doch vor dem PC :D

    Habe vergessen das Signal zu senden bei den Setter-Methoden.


Log in to reply