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. Automatic connection of QML signal and C++ slot?
Qt 6.11 is out! See what's new in the release blog

Automatic connection of QML signal and C++ slot?

Scheduled Pinned Locked Moved Solved QML and Qt Quick
16 Posts 6 Posters 1.6k 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.
  • J.HilkJ J.Hilk

    @Tom-asso don't use that feature if you can help yourself!

    These days there's Ai/copilot to do repetitive boring and simple tasks. Like creating slots for signals or unit tests for functions.

    Rather use that.

    JonBJ Online
    JonBJ Online
    JonB
    wrote on last edited by
    #7

    @J-Hilk said in Automatic connection of QML signal and C++ slot?:

    These days there's Ai/copilot to do repetitive boring and simple tasks.

    Nothing will ever equate to the efficiency and clarity of @Axel-Spoerl's yy9p in vim ;-)

    J.HilkJ 1 Reply Last reply
    1
    • JonBJ JonB

      @J-Hilk said in Automatic connection of QML signal and C++ slot?:

      These days there's Ai/copilot to do repetitive boring and simple tasks.

      Nothing will ever equate to the efficiency and clarity of @Axel-Spoerl's yy9p in vim ;-)

      J.HilkJ Online
      J.HilkJ Online
      J.Hilk
      Moderators
      wrote on last edited by
      #8

      @JonB I actually have no idea what it is :P first time I heard about it.

      But just wait until Ai is part of your OS and always listening, like Alexa....

      Not a disturbing thought at all.


      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.

      JonBJ 1 Reply Last reply
      1
      • J.HilkJ J.Hilk

        @JonB I actually have no idea what it is :P first time I heard about it.

        But just wait until Ai is part of your OS and always listening, like Alexa....

        Not a disturbing thought at all.

        JonBJ Online
        JonBJ Online
        JonB
        wrote on last edited by
        #9

        @J-Hilk If you don't know what yy9p does in vi your life is lacking. Surely it's clear what it does anyway... ;)

        J.HilkJ GrecKoG 2 Replies Last reply
        0
        • JonBJ JonB

          @J-Hilk If you don't know what yy9p does in vi your life is lacking. Surely it's clear what it does anyway... ;)

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

          @JonB so I asked chatgpt :P so I now know!

          and I also generally try not to use a cmd line text editor if I can help it ;)


          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.

          S 1 Reply Last reply
          0
          • JonBJ JonB

            @J-Hilk If you don't know what yy9p does in vi your life is lacking. Surely it's clear what it does anyway... ;)

            GrecKoG Offline
            GrecKoG Offline
            GrecKo
            Qt Champions 2018
            wrote on last edited by GrecKo
            #11

            I'm sorry but do not connect to QML signals in c++, even though it's simple with some editor magic (Qt Creator ctrl-d is much easier to grok than vim bindings btw). You will still be left with verbose and subpar code.

            https://doc.qt.io/qt-5/qtquick-bestpractices.html#interacting-with-qml-from-c
            https://doc.qt.io/qt-6/qtquick-bestpractices.html#exposing-data-from-c-to-qml
            https://doc.qt.io/qt-6/qtqml-cppintegration-overview.html#interacting-with-qml-objects-from-c
            https://youtu.be/vzs5VPTf4QQ?t=23m20s

            Tom assoT 1 Reply Last reply
            3
            • Axel SpoerlA Axel Spoerl

              @Tom-asso said in Automatic connection of QML signal and C++ slot?:

              If my C++ app must respond to multiple menu actions, e.g. 10 actions, then my C++ code must do the following, right?

              1. declare/define 10 slot functions
              2. make 10 calls to connect(), once for each slot declared in step 1

              That's the gist of it, right?

              Yes.

              Those 10 connect() calls just seem like a lot

              yy9pis the sequence in vim, doing 80% of this job for you. The rest is usually about editing a few letters :-)

              You can of course use autoconnect - totally fine, it has been designed for the comfort you are seeking.
              The caveat is, that a mismatch of a single character will leave signal/slot unconnected without notice.
              Depending on an exact string match in an XML file and C++ code, comes particularly unhandy when searching for a bug. I have seen furious forum posts and bugreports about QObject::connect()allegedly not working properly. I remember a project from a few years ago, where a company's quality department has done a huge effort in renaming_all_underline_stuff intoCamelStyle, autoconnected slots included. Compiled like a charm, and set the UI on fire.

              Tom assoT Offline
              Tom assoT Offline
              Tom asso
              wrote on last edited by
              #12

              @Axel-Spoerl autoconnect is only for Qt-Widgets, not enabled for QtQuick/QML, correct?

              1 Reply Last reply
              0
              • GrecKoG GrecKo

                I'm sorry but do not connect to QML signals in c++, even though it's simple with some editor magic (Qt Creator ctrl-d is much easier to grok than vim bindings btw). You will still be left with verbose and subpar code.

                https://doc.qt.io/qt-5/qtquick-bestpractices.html#interacting-with-qml-from-c
                https://doc.qt.io/qt-6/qtquick-bestpractices.html#exposing-data-from-c-to-qml
                https://doc.qt.io/qt-6/qtqml-cppintegration-overview.html#interacting-with-qml-objects-from-c
                https://youtu.be/vzs5VPTf4QQ?t=23m20s

                Tom assoT Offline
                Tom assoT Offline
                Tom asso
                wrote on last edited by Tom asso
                #13

                @GrecKo - Thanks for those references! I think I generally agree with you now (after I wrote my entire freaking C++ app using signals/slots!). But are there cases where QML signal to C++ slot makes sense? Maybe in the case of one QML emitter and multiple C++ 'listeners'?

                Axel SpoerlA 1 Reply Last reply
                0
                • Tom assoT Tom asso

                  @GrecKo - Thanks for those references! I think I generally agree with you now (after I wrote my entire freaking C++ app using signals/slots!). But are there cases where QML signal to C++ slot makes sense? Maybe in the case of one QML emitter and multiple C++ 'listeners'?

                  Axel SpoerlA Offline
                  Axel SpoerlA Offline
                  Axel Spoerl
                  Moderators
                  wrote on last edited by
                  #14

                  @Tom-asso said in Automatic connection of QML signal and C++ slot?:

                  But are there cases where QML signal to C++ slot makes sense? Maybe in the case of one QML emitter and multiple C++ 'listeners'?

                  It’s better to call a C++ function from QML and do the plumbing in C++, I wouldn’t know of a use case where such connections are the best possible solution.

                  Software Engineer
                  The Qt Company, Oslo

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

                    @JonB so I asked chatgpt :P so I now know!

                    and I also generally try not to use a cmd line text editor if I can help it ;)

                    S Offline
                    S Offline
                    SimonSchroeder
                    wrote on last edited by
                    #15

                    @J-Hilk said in Automatic connection of QML signal and C++ slot?:

                    I also generally try not to use a cmd line text editor if I can help it ;)

                    There also graphical versions of vi. And Qt Creator supports FakeVim which you can quickly toggle.

                    JonBJ 1 Reply Last reply
                    0
                    • S SimonSchroeder

                      @J-Hilk said in Automatic connection of QML signal and C++ slot?:

                      I also generally try not to use a cmd line text editor if I can help it ;)

                      There also graphical versions of vi. And Qt Creator supports FakeVim which you can quickly toggle.

                      JonBJ Online
                      JonBJ Online
                      JonB
                      wrote on last edited by JonB
                      #16

                      @SimonSchroeder I think @J-Hilk's interest in using vi/vim in any shape or form is absolute 0! We were jesting back & forth.

                      1 Reply Last reply
                      0
                      • Tom assoT Tom asso has marked this topic as solved on

                      • Login

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