Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. C++ Gurus
  4. QList<const QBluetoothDeviceInfo* declaration / definiton problem
Forum Updated to NodeBB v4.3 + New Features

QList<const QBluetoothDeviceInfo* declaration / definiton problem

Scheduled Pinned Locked Moved Unsolved C++ Gurus
47 Posts 6 Posters 17.1k Views 4 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.
  • A Anonymous_Banned275

    @AnneRanch An idea - would this work in my application ?
    Little advanced for me , but if it would work I would try it.

    https://embeddeduse.com/2013/06/29/copied-or-not-copied-arguments-signals-slots/#:~:text=When QMetaObject%3A%3Aactivate creates the command object%2C it stores,order to make the routing of QMetaObject%3A%3Aactivate work.

    PS Do I understand it correctly - QT does not have "copy constructor " ?

    Axel SpoerlA Online
    Axel SpoerlA Online
    Axel Spoerl
    Moderators
    wrote on last edited by
    #36

    PS Do I understand it correctly - QT does not have "copy constructor " ?

    Goodness, no. Of course we have.

    Software Engineer
    The Qt Company, Oslo

    A 1 Reply Last reply
    0
    • A Anonymous_Banned275

      @AnneRanch An idea - would this work in my application ?
      Little advanced for me , but if it would work I would try it.

      https://embeddeduse.com/2013/06/29/copied-or-not-copied-arguments-signals-slots/#:~:text=When QMetaObject%3A%3Aactivate creates the command object%2C it stores,order to make the routing of QMetaObject%3A%3Aactivate work.

      PS Do I understand it correctly - QT does not have "copy constructor " ?

      Pl45m4P Offline
      Pl45m4P Offline
      Pl45m4
      wrote on last edited by Pl45m4
      #37

      @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

      PS Do I understand it correctly - QT does not have "copy constructor " ?

      QObjects don't have. By design, because they have to stay unique.

      Think about QObject properties, parent/child, unique identifier (like objectName). If you clone a QObject "one to one", it would cause a big mess and would violate the Qt objecttree / parent-child paradigm, since nothing is unique anymore.
      Where should parent of some widget point to, when the parent widget up the object tree was cloned and there are two identical objects now?!

      • https://doc.qt.io/qt-6/qobject.html#no-copy-constructor-or-assignment-operator

      As mentioned here, a copy c'tor might be declared / implemented in the private section of a class, but is disabled through Q_DISABLE_COPY macro.

      • https://doc.qt.io/qt-6/qtclasshelpermacros-proxy.html#Q_DISABLE_COPY

      If debugging is the process of removing software bugs, then programming must be the process of putting them in.

      ~E. W. Dijkstra

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

        I think the case is pretty clear,

        QList<const QBluetoothDeviceInfo* > RemoteDeviceInfo; expects a heap allocated QBluetoothDeviceInfo instance

        RemoteDeviceInfo.append(&info); info is a local function scoped stack allocated instance of QBluetoothDeviceInfo instance.

        this is a different scoped function

        void SettingsDialog::on_applyButton_11_clicked()
        {
        text = " DEBUG TEST Direct access ";
        text += RemoteDeviceInfo.at(0)->name();
        qDebug()<< text;
        return;
        

        trying to access the now destructed info instance.

        Very likely, but we will never know for sure.

        A Offline
        A Offline
        Anonymous_Banned275
        wrote on last edited by
        #38

        @J-Hilk Would it be too offensive to ask you to discuss this ?
        PS I do not get notified about new posts so it may take a few days before I ;ll read your reply.

        Pl45m4P J.HilkJ 2 Replies Last reply
        0
        • A Anonymous_Banned275

          @J-Hilk Would it be too offensive to ask you to discuss this ?
          PS I do not get notified about new posts so it may take a few days before I ;ll read your reply.

          Pl45m4P Offline
          Pl45m4P Offline
          Pl45m4
          wrote on last edited by Pl45m4
          #39

          @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

          Would it be too offensive to ask you to discuss this ?

          What do you want to discuss? Whether the documentation is lying?
          You should not copy QObject.

          Everything else, you can copy/use copy c'tors, as it's just standard C++ language and not "Qt".


          If debugging is the process of removing software bugs, then programming must be the process of putting them in.

          ~E. W. Dijkstra

          A 1 Reply Last reply
          0
          • Pl45m4P Pl45m4

            @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

            Would it be too offensive to ask you to discuss this ?

            What do you want to discuss? Whether the documentation is lying?
            You should not copy QObject.

            Everything else, you can copy/use copy c'tors, as it's just standard C++ language and not "Qt".

            A Offline
            A Offline
            Anonymous_Banned275
            wrote on last edited by
            #40

            @Pl45m4 I was looking for alternative way to make a copy of "info" and I got it solved. CLOSED

            1 Reply Last reply
            0
            • A Anonymous_Banned275

              @J-Hilk Would it be too offensive to ask you to discuss this ?
              PS I do not get notified about new posts so it may take a few days before I ;ll read your reply.

              J.HilkJ Offline
              J.HilkJ Offline
              J.Hilk
              Moderators
              wrote on last edited by
              #41

              @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

              @J-Hilk Would it be too offensive to ask you to discuss this ?

              No, of course not, open discourse is one of the fundamentals of society.

              @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

              @Pl45m4 I was looking for alternative way to make a copy of "info" and I got it solved. CLOSED

              I'm curious on what you now ended up using! But for your information I wanted to point out, that you can click on the cog symbol on your opening post and actually select "Mark topic as solved". Alternatively, if you think that one answer in particular solved your issue, you can mark that answer as the correct one.


              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.

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

                @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

                @J-Hilk Would it be too offensive to ask you to discuss this ?

                No, of course not, open discourse is one of the fundamentals of society.

                @AnneRanch said in QList<const QBluetoothDeviceInfo* declaration / definiton problem:

                @Pl45m4 I was looking for alternative way to make a copy of "info" and I got it solved. CLOSED

                I'm curious on what you now ended up using! But for your information I wanted to point out, that you can click on the cog symbol on your opening post and actually select "Mark topic as solved". Alternatively, if you think that one answer in particular solved your issue, you can mark that answer as the correct one.

                A Offline
                A Offline
                Anonymous_Banned275
                wrote on last edited by
                #42

                @J-Hilk

                Currently I just add "info" to struct - class variable and pass "info" to another function for( partial) processing.
                I am still not sure if I can process multiple SIGNAL.

                Here is a code snippet. PLEASE keep in mind it is a code under construction and I like to keep old code so I do not duplicate and of course I use QDebug extensively.
                I am posting the cope "as is " PLEASE do not tell me it does not compile.

                       void SettingsDialog::addDevice(const QBluetoothDeviceInfo &info)
                       {
                           // //*BT_Database_Array[16];
                           //HERE
                           BT_Database_Array[Array_Index].BT_INFO_Address = info.address();
                           BT_Database_Array[Array_Index].INFO_Name = info.name();
                
                           //Array_Index++;
                           //#endif
                           //temporary copy to QString
                           INFO_Name = info.name();
                           BT_Database.INFO_Name = info.name();
                           BT_Database.INFO_Address = info.address().toString();
                           // verify name
                           text = " TASK  verify name";
                           text += BT_Database_Array[Array_Index].INFO_Name;
                #ifdef DEBUG_TASK_SCAN
                           qDebug()<< text;
                #endif
                           text= "Read info ";
                           text += " name ";
                           text += info.name();
                           text += " address ";
                           text += info.address().toString();
                
                #ifdef DEBUG_TASK_SCAN
                           qDebug()<< text;
                #endif
                
                           // verify address
                           text = " TASK  verify address";
                           text += BT_Database_Array[Array_Index].BT_INFO_Address.toString();
                #ifdef DEBUG_TASK_PAIRING
                           qDebug()<< text;
                #endif
                
                           //Pairing_verify(0);
                           Pairing_verify(0, info);
                
                
                1 Reply Last reply
                0
                • Axel SpoerlA Axel Spoerl

                  PS Do I understand it correctly - QT does not have "copy constructor " ?

                  Goodness, no. Of course we have.

                  A Offline
                  A Offline
                  Anonymous_Banned275
                  wrote on last edited by
                  #43

                  @Axel-Spoerl Hello sir, I wonder if I could ask you a favor which
                  would be immensely helpful in using QT.
                  I am looking forward to your reply.
                  Thanks
                  Cheers

                  Axel SpoerlA 1 Reply Last reply
                  0
                  • A Anonymous_Banned275

                    @Axel-Spoerl Hello sir, I wonder if I could ask you a favor which
                    would be immensely helpful in using QT.
                    I am looking forward to your reply.
                    Thanks
                    Cheers

                    Axel SpoerlA Online
                    Axel SpoerlA Online
                    Axel Spoerl
                    Moderators
                    wrote on last edited by
                    #44

                    @AnneRanch
                    Feeling honored to be addressed aristocraticly :-)
                    Just ask!

                    Software Engineer
                    The Qt Company, Oslo

                    A 1 Reply Last reply
                    1
                    • Axel SpoerlA Axel Spoerl

                      @AnneRanch
                      Feeling honored to be addressed aristocraticly :-)
                      Just ask!

                      A Offline
                      A Offline
                      Anonymous_Banned275
                      wrote on last edited by
                      #45

                      @Axel-Spoerl OK - here it comes

                      is there a written document (QT ) describing how to setup QT to
                      compile ONCE ?

                      There are options but I must have them set incorrectly - "typical" user error...

                      I have a growing "subdirs" project and when I do "rebuild" and then "run" or "debug" it will compile again - without me doing any editing.

                      Same when I do edit , then "run " and "run" again, it compiles again , without me doing any more editing.

                      This redundant recompile is beginning to take more and more of my precious time ... I could spent with my grand kids instead ...

                      I had posted a bug report but got no solution.

                      Axel SpoerlA 1 Reply Last reply
                      0
                      • A Anonymous_Banned275

                        @Axel-Spoerl OK - here it comes

                        is there a written document (QT ) describing how to setup QT to
                        compile ONCE ?

                        There are options but I must have them set incorrectly - "typical" user error...

                        I have a growing "subdirs" project and when I do "rebuild" and then "run" or "debug" it will compile again - without me doing any editing.

                        Same when I do edit , then "run " and "run" again, it compiles again , without me doing any more editing.

                        This redundant recompile is beginning to take more and more of my precious time ... I could spent with my grand kids instead ...

                        I had posted a bug report but got no solution.

                        Axel SpoerlA Online
                        Axel SpoerlA Online
                        Axel Spoerl
                        Moderators
                        wrote on last edited by
                        #46

                        @AnneRanch
                        I guess this is worth a thread of its own.
                        Generally, it is not the intention for Qt Creator to always recompile.
                        If the project is configured correctly, what you describe should not happen.
                        Troubleshooting depends on whether you use qmake or cmake.
                        Both build systems check time stamps to determine if a build tree is dirty and needs compilation.

                        Typical constellations that trigger rebuilding are

                        • git pull or git rebase in the source tree
                        • a build step in Qt Creator that triggers a cleanup before building
                        • broken subdir configuration

                        Suggest you post your subdir structure and cmake / .pro files in a separate thread.

                        Software Engineer
                        The Qt Company, Oslo

                        A 1 Reply Last reply
                        0
                        • Axel SpoerlA Axel Spoerl

                          @AnneRanch
                          I guess this is worth a thread of its own.
                          Generally, it is not the intention for Qt Creator to always recompile.
                          If the project is configured correctly, what you describe should not happen.
                          Troubleshooting depends on whether you use qmake or cmake.
                          Both build systems check time stamps to determine if a build tree is dirty and needs compilation.

                          Typical constellations that trigger rebuilding are

                          • git pull or git rebase in the source tree
                          • a build step in Qt Creator that triggers a cleanup before building
                          • broken subdir configuration

                          Suggest you post your subdir structure and cmake / .pro files in a separate thread.

                          A Offline
                          A Offline
                          Anonymous_Banned275
                          wrote on last edited by
                          #47

                          @Axel-Spoerl Thanks , I did post "sarcastic" ...." it compiles" in "the lounge".

                          Maybe I could ask for it to be moved .....

                          and do as you suggested after

                          1 Reply Last reply
                          0

                          • Login

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