Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Debugging QML?
Forum Updated to NodeBB v4.3 + New Features

Debugging QML?

Scheduled Pinned Locked Moved Solved QML and Qt Quick
15 Posts 4 Posters 231 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    DigitalArtifex
    wrote last edited by DigitalArtifex
    #1

    Why is QML so ambiguous with errors? Like if you accidentally assign the same property twice you just get a build failure with no indicators.

    Same with other parsing errors. I either made an error or a random keystroke in my component and my only indication is that QML claims my property aliases don't exist.

    Other than line by line and commenting out entire portions of code to isolate it ..how do I actually debug QML issues? Is there a tool I'm overlooking?

    Edit: I'm using QtCreator 16.02 with 6.9.0

    ekkescornerE 1 Reply Last reply
    0
    • D Offline
      D Offline
      DigitalArtifex
      wrote last edited by
      #2

      For clarification: I am talking specifically about a situation where I have a component that must have an error because it's claiming properties and aliases don't exist when they do. Absolutely no information to indicate what I actually did to throw off the parsing.

      There is no "Issues" output.
      There is no erroneous compile output.

      Just a red squiggle, and a crash at runtime.
      Screenshot_20250622_132619.png

      1 Reply Last reply
      0
      • D Offline
        D Offline
        DigitalArtifex
        wrote last edited by
        #3

        turns out MapRectangle was already a type and being new to QML, I didn't know this. And it worked up until I included QtPositioning/Location in my Main.qml to access the map type. Is there anyway to find these types of conflicts besides already knowing all the types in the library you're including?

        1 Reply Last reply
        0
        • A Offline
          A Offline
          ankou29666
          wrote last edited by
          #4

          you can check whether the type already exists by watching the list of all QML types in documentation.

          You can resolve conflicts by

          import MyModule as M
          import QtModule as Q
          
          M.CommonName {}
          Q.CommonName {}
          

          I'm unsure about the need of the as statements, but this works.

          D 1 Reply Last reply
          2
          • A ankou29666

            you can check whether the type already exists by watching the list of all QML types in documentation.

            You can resolve conflicts by

            import MyModule as M
            import QtModule as Q
            
            M.CommonName {}
            Q.CommonName {}
            

            I'm unsure about the need of the as statements, but this works.

            D Offline
            D Offline
            DigitalArtifex
            wrote last edited by
            #5

            @ankou29666 thank you for the tip on how to resolve the conflicts, that will be very useful.

            The bit about using the documentation to check for conflicts isn't a viable solution for systems as large as Qt. I am a fan of RTFM but at a certain point it's no longer feasible. I'm supposed to learn all aspects of Qt, before I start coding Qt...in order to learn Qt?

            That doesn't make any sense.

            If there were at least a warning of the conflict (like all other modern languages do) the user would know what they have to read in the FM.

            1 Reply Last reply
            0
            • D DigitalArtifex

              Why is QML so ambiguous with errors? Like if you accidentally assign the same property twice you just get a build failure with no indicators.

              Same with other parsing errors. I either made an error or a random keystroke in my component and my only indication is that QML claims my property aliases don't exist.

              Other than line by line and commenting out entire portions of code to isolate it ..how do I actually debug QML issues? Is there a tool I'm overlooking?

              Edit: I'm using QtCreator 16.02 with 6.9.0

              ekkescornerE Offline
              ekkescornerE Offline
              ekkescorner
              Qt Champions 2016
              wrote last edited by
              #6

              @DigitalArtifex said in Debugging QML?:

              Why is QML so ambiguous with errors? Like if you accidentally assign the same property twice you just get a build failure with no indicators.

              you should get the warning on property twice immediately while typing:

              qml_duplicate.png
              probably your qmlls isn't configured ?

              ekke ... Qt Champion 2016 | 2024 ... mobile business apps
              5.15 --> 6.9 https://t1p.de/ekkeChecklist
              QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

              D 1 Reply Last reply
              0
              • ekkescornerE ekkescorner

                @DigitalArtifex said in Debugging QML?:

                Why is QML so ambiguous with errors? Like if you accidentally assign the same property twice you just get a build failure with no indicators.

                you should get the warning on property twice immediately while typing:

                qml_duplicate.png
                probably your qmlls isn't configured ?

                D Offline
                D Offline
                DigitalArtifex
                wrote last edited by
                #7

                @ekkescorner when declaring two properties like that it is highlighted. When assigning the same property twice, it does not. There is just a colorless error in compile output.

                But honestly the biggest issue is silently ignoring naming conflicts. That alone cost me over a days worth of work for what every other language warns you about.

                ekkescornerE J.HilkJ 3 Replies Last reply
                0
                • D DigitalArtifex

                  @ekkescorner when declaring two properties like that it is highlighted. When assigning the same property twice, it does not. There is just a colorless error in compile output.

                  But honestly the biggest issue is silently ignoring naming conflicts. That alone cost me over a days worth of work for what every other language warns you about.

                  ekkescornerE Offline
                  ekkescornerE Offline
                  ekkescorner
                  Qt Champions 2016
                  wrote last edited by
                  #8

                  @DigitalArtifex said in Debugging QML?:

                  When assigning the same property twice, it does not. There is just a colorless error in compile output.

                  you should create an issue at Qt Bugs

                  ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                  5.15 --> 6.9 https://t1p.de/ekkeChecklist
                  QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                  1 Reply Last reply
                  0
                  • D DigitalArtifex

                    @ekkescorner when declaring two properties like that it is highlighted. When assigning the same property twice, it does not. There is just a colorless error in compile output.

                    But honestly the biggest issue is silently ignoring naming conflicts. That alone cost me over a days worth of work for what every other language warns you about.

                    ekkescornerE Offline
                    ekkescornerE Offline
                    ekkescorner
                    Qt Champions 2016
                    wrote last edited by
                    #9

                    @DigitalArtifex said in Debugging QML?:

                    But honestly the biggest issue is silently ignoring naming conflicts. That alone cost me over a days worth of work for what every other language warns you about.

                    when I'm creating QML Types - and it's not a very custom specific name - I look at AllQMLTypes to verify

                    ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                    5.15 --> 6.9 https://t1p.de/ekkeChecklist
                    QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                    1 Reply Last reply
                    0
                    • D DigitalArtifex

                      @ekkescorner when declaring two properties like that it is highlighted. When assigning the same property twice, it does not. There is just a colorless error in compile output.

                      But honestly the biggest issue is silently ignoring naming conflicts. That alone cost me over a days worth of work for what every other language warns you about.

                      J.HilkJ Online
                      J.HilkJ Online
                      J.Hilk
                      Moderators
                      wrote last edited by
                      #10

                      @DigitalArtifex said in Debugging QML?:

                      When assigning the same property twice, it does not. There is just a colorless error in compile output.

                      thats simply not true:

                      359952c6-fe69-4df0-b6d1-8d12360fd39a-image.png


                      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                      Q: What's that?
                      A: It's blue light.
                      Q: What does it do?
                      A: It turns blue.

                      D 1 Reply Last reply
                      0
                      • J.HilkJ J.Hilk

                        @DigitalArtifex said in Debugging QML?:

                        When assigning the same property twice, it does not. There is just a colorless error in compile output.

                        thats simply not true:

                        359952c6-fe69-4df0-b6d1-8d12360fd39a-image.png

                        D Offline
                        D Offline
                        DigitalArtifex
                        wrote last edited by DigitalArtifex
                        #11

                        @J.Hilk it may be a bug then but its not "simply not true". My first screenshot is from assigning a property twice, and someone in the discord was able to reproduce it. For me the only thing it says is 'ninja build subcommand failed".

                        What QtCreator version and OS are you on that its working? It would be helpful for the bug report

                        Edit: my apologies. I included that screenshot in discord but not the forum post. I will post a new one when I'm back to my computer

                        1 Reply Last reply
                        0
                        • ekkescornerE Offline
                          ekkescornerE Offline
                          ekkescorner
                          Qt Champions 2016
                          wrote last edited by ekkescorner
                          #12

                          I'm using macOS, Qt 6.9.1, QtC 16.0.2
                          qmlls settings:
                          qmlls2.png
                          semantic highlighting is checked because my QML types are organized in nested folders

                          ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                          5.15 --> 6.9 https://t1p.de/ekkeChecklist
                          QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                          D 1 Reply Last reply
                          0
                          • ekkescornerE ekkescorner

                            I'm using macOS, Qt 6.9.1, QtC 16.0.2
                            qmlls settings:
                            qmlls2.png
                            semantic highlighting is checked because my QML types are organized in nested folders

                            D Offline
                            D Offline
                            DigitalArtifex
                            wrote last edited by DigitalArtifex
                            #13

                            @ekkescorner thank you! For some reason this is all disabled by default on Linux. I now have all the warnings and errors I would expect, and a whole lot more

                            Is this something that has to be enabled and I overlooked in the documentation, or should it have been on? Some of the stuff it enables is bog standard for development.

                            And even more curious as to why as community champion is providing clearer and more concise support than the official moderation team who decided to take the "You're a liar" stance

                            1 Reply Last reply
                            0
                            • ekkescornerE Offline
                              ekkescornerE Offline
                              ekkescorner
                              Qt Champions 2016
                              wrote last edited by
                              #14

                              it's always a good idea to read documentation, per ex. from QML Tooling - QMLLS or from QtCreator
                              you ask, why it's not already enabled ? there are many devs out there not using QML and then it's better disabled

                              BTW: from my POV the moderator team does a great job

                              ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                              5.15 --> 6.9 https://t1p.de/ekkeChecklist
                              QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                              D 1 Reply Last reply
                              0
                              • ekkescornerE ekkescorner

                                it's always a good idea to read documentation, per ex. from QML Tooling - QMLLS or from QtCreator
                                you ask, why it's not already enabled ? there are many devs out there not using QML and then it's better disabled

                                BTW: from my POV the moderator team does a great job

                                D Offline
                                D Offline
                                DigitalArtifex
                                wrote last edited by DigitalArtifex
                                #15

                                @ekkescorner yes its a good idea to read the documentation (and I do), but we also have to play the new user role to make sure the flow of discovery of information is correct. I do not see where I would have discovered that information, without encountering an error that I had to seek help for.

                                In the Qt Quick article (that would be the entry point for many people starting QML) there is no mention of this page. It is only in the navigation, and burried under another article called Qt QML. Not only that, but on the Qt Quick page, there is a link to an article describing debugging (which makes no mention of the QML Tooling page) and a link to a "Qt Quick Tools And Utilities" page, which is completely different and makes no mention of QMLLS.

                                Screenshot_20250624_133336-1.png

                                1 Reply Last reply
                                1
                                • D DigitalArtifex has marked this topic as solved

                                • Login

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • Users
                                • Groups
                                • Search
                                • Get Qt Extensions
                                • Unsolved