Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. ui detect mouse event on objects

ui detect mouse event on objects

Scheduled Pinned Locked Moved Unsolved General and Desktop
26 Posts 6 Posters 4.9k 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.
  • M mpergand

    @Pfanne
    You may have a look at QButtonGroup or QGroupBox

    P Offline
    P Offline
    Pfanne
    wrote on last edited by
    #7

    @mpergand

    I take a look at QButtonGroup, this look like the right object for my usecase.
    I tryed this:

    *.h

    private slots:
        void on_ioGroup_clicked(int id);
    
    MainWindow::MainWindow(QWidget* parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    
    {
        ui->setupUi(this);
        QButtonGroup* ioGroup = new QButtonGroup(this);
        ioGroup->addButton(ui->IO_1, 1;
        ioGroup->addButton(ui->IO_2, 2);
        
        connect(ioGroup, SIGNAL(buttonClicked(int)), this, SLOT(on_ioGroup_clicked(int)));
    }
    
    ----
    
    void MainWindow::on_ioGroup_clicked(int id) {
        qDebug() << "id clicked" << id;
    }
        ```
    
    but "on_ioGroup-clicked" will not be executed by clicking on  IO_1 or IO_2.
    JonBJ 1 Reply Last reply
    0
    • P Pfanne

      @mpergand

      I take a look at QButtonGroup, this look like the right object for my usecase.
      I tryed this:

      *.h

      private slots:
          void on_ioGroup_clicked(int id);
      
      MainWindow::MainWindow(QWidget* parent) :
          QMainWindow(parent),
          ui(new Ui::MainWindow)
      
      {
          ui->setupUi(this);
          QButtonGroup* ioGroup = new QButtonGroup(this);
          ioGroup->addButton(ui->IO_1, 1;
          ioGroup->addButton(ui->IO_2, 2);
          
          connect(ioGroup, SIGNAL(buttonClicked(int)), this, SLOT(on_ioGroup_clicked(int)));
      }
      
      ----
      
      void MainWindow::on_ioGroup_clicked(int id) {
          qDebug() << "id clicked" << id;
      }
          ```
      
      but "on_ioGroup-clicked" will not be executed by clicking on  IO_1 or IO_2.
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #8

      @Pfanne
      Use the "modern" syntax for yourconnect()s and you would see there is no buttonClicked(int) with int parameter signal. OTOH there is a QButtonGroup::idClicked(int id) signal.

      P 1 Reply Last reply
      1
      • JonBJ JonB

        @Pfanne
        Use the "modern" syntax for yourconnect()s and you would see there is no buttonClicked(int) with int parameter signal. OTOH there is a QButtonGroup::idClicked(int id) signal.

        P Offline
        P Offline
        Pfanne
        wrote on last edited by
        #9

        @JonB

        yes, I also saw that "buttonClicked(int)" is not up to date!

        this worked:

        connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
        

        this not:

            connect(ioGroup, &QButtonGroup::idClicked(int id), this, MainWindow::on_ioGroup_clicked(int id));
        
        P JonBJ M 3 Replies Last reply
        0
        • P Pfanne

          @JonB

          yes, I also saw that "buttonClicked(int)" is not up to date!

          this worked:

          connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
          

          this not:

              connect(ioGroup, &QButtonGroup::idClicked(int id), this, MainWindow::on_ioGroup_clicked(int id));
          
          P Offline
          P Offline
          Pfanne
          wrote on last edited by
          #10

          @Pfanne

          finaly this worked:

              connect(ioGroup, SIGNAL(idClicked(int)), this, SLOT(on_ioGroup_clicked(int)));
          
          
          void MainWindow::on_ioGroup_clicked(int id) {
              qDebug() << "id clicked" << id;
              QAbstractButton* cb = ioGroup->button(id);
              qDebug() << "Object" << cb->objectName();
          }
          
          1 Reply Last reply
          0
          • P Pfanne

            @JonB

            yes, I also saw that "buttonClicked(int)" is not up to date!

            this worked:

            connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
            

            this not:

                connect(ioGroup, &QButtonGroup::idClicked(int id), this, MainWindow::on_ioGroup_clicked(int id));
            
            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by JonB
            #11

            @Pfanne said in ui detect mouse event on objects:

            this worked:
            connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

            Correct.

            finaly this worked:
            connect(ioGroup, SIGNAL(idClicked(int)), this, SLOT(on_ioGroup_clicked(int)));

            Since you had it correct first why change it?

            P 1 Reply Last reply
            0
            • P Pfanne

              @JonB

              yes, I also saw that "buttonClicked(int)" is not up to date!

              this worked:

              connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
              

              this not:

                  connect(ioGroup, &QButtonGroup::idClicked(int id), this, MainWindow::on_ioGroup_clicked(int id));
              
              M Offline
              M Offline
              mpergand
              wrote on last edited by
              #12

              @Pfanne said in ui detect mouse event on objects:

              connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

              You must specify an adress (&) here:
              &MainWindow::on_ioGroup_clicked);

              JonBJ 1 Reply Last reply
              3
              • M mpergand

                @Pfanne said in ui detect mouse event on objects:

                connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

                You must specify an adress (&) here:
                &MainWindow::on_ioGroup_clicked);

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by
                #13

                @mpergand said in ui detect mouse event on objects:

                &MainWindow::on_ioGroup_clicked);

                OIC I missed that when OP said it was correct.

                M JonBJ 2 Replies Last reply
                0
                • JonBJ JonB

                  @mpergand said in ui detect mouse event on objects:

                  &MainWindow::on_ioGroup_clicked);

                  OIC I missed that when OP said it was correct.

                  M Offline
                  M Offline
                  mpergand
                  wrote on last edited by mpergand
                  #14

                  Hi @JonB

                  Off topic question :
                  How to set text color as you do in red in your posts ?

                  Pl45m4P JonBJ 2 Replies Last reply
                  0
                  • M mpergand

                    Hi @JonB

                    Off topic question :
                    How to set text color as you do in red in your posts ?

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

                    @mpergand said in ui detect mouse event on objects:

                    How to set text color as you do in red in your posts ?

                    ` Text ` = Text


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

                    ~E. W. Dijkstra

                    M 1 Reply Last reply
                    0
                    • M mpergand

                      Hi @JonB

                      Off topic question :
                      How to set text color as you do in red in your posts ?

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

                      @mpergand said in ui detect mouse event on objects:

                      How to set text color as you do in red in your posts ?

                      Interesting. I don't know and have never set a text color in any of my posts! :) @Pl45m4 post above with red text for Text is the first time I have seen any color.

                      Oh, hang on! Like buttonClicked()? LMAO, until today's forum update that was in green, no wonder I didn't know about red! The "color" is just up to the forum style. The important thing is that code is in monospace font. Use the Code icon (</>) when you are typing in. Or

                      `in-line codecharacters`
                      

                      ```

                      multiline code
                      multiline code
                      

                      ```
                      First one is single-backtick inline, second one is triple-backtick above and below block.

                      Pl45m4P 1 Reply Last reply
                      0
                      • JonBJ JonB referenced this topic on
                      • JonBJ JonB

                        @mpergand said in ui detect mouse event on objects:

                        How to set text color as you do in red in your posts ?

                        Interesting. I don't know and have never set a text color in any of my posts! :) @Pl45m4 post above with red text for Text is the first time I have seen any color.

                        Oh, hang on! Like buttonClicked()? LMAO, until today's forum update that was in green, no wonder I didn't know about red! The "color" is just up to the forum style. The important thing is that code is in monospace font. Use the Code icon (</>) when you are typing in. Or

                        `in-line codecharacters`
                        

                        ```

                        multiline code
                        multiline code
                        

                        ```
                        First one is single-backtick inline, second one is triple-backtick above and below block.

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

                        @JonB said in ui detect mouse event on objects:

                        Interesting. I don't know and have never set a text color in any of my posts! :) @Pl45m4 post above with red text for Text is the first time I have seen any color.

                        I use this text format every time I mention some Qt term or class. QPushButton, QObject, Q_OBJECT.
                        So did/do you ;-)
                        I don't know what exactly you did when writing these posts, but I used single backticks (don't know how they are called)
                        ` QPushButton ` (now escaped to make them visible)

                        LMAO, until today's forum update that was in green, no wonder I didn't know about red

                        I could swear it was red before, with some kind of red-ish background.
                        At least when used outside of a code section in regular paragraphs.


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

                        ~E. W. Dijkstra

                        JonBJ 1 Reply Last reply
                        0
                        • Pl45m4P Pl45m4

                          @JonB said in ui detect mouse event on objects:

                          Interesting. I don't know and have never set a text color in any of my posts! :) @Pl45m4 post above with red text for Text is the first time I have seen any color.

                          I use this text format every time I mention some Qt term or class. QPushButton, QObject, Q_OBJECT.
                          So did/do you ;-)
                          I don't know what exactly you did when writing these posts, but I used single backticks (don't know how they are called)
                          ` QPushButton ` (now escaped to make them visible)

                          LMAO, until today's forum update that was in green, no wonder I didn't know about red

                          I could swear it was red before, with some kind of red-ish background.
                          At least when used outside of a code section in regular paragraphs.

                          JonBJ Offline
                          JonBJ Offline
                          JonB
                          wrote on last edited by
                          #18

                          @Pl45m4 Maybe. Whatever I thought the original question was how to write in red, rather than in monospace which happens to show as red!

                          1 Reply Last reply
                          1
                          • Pl45m4P Pl45m4

                            @mpergand said in ui detect mouse event on objects:

                            How to set text color as you do in red in your posts ?

                            ` Text ` = Text

                            M Offline
                            M Offline
                            mpergand
                            wrote on last edited by mpergand
                            #19

                            @Pl45m4
                            Thanks for the tip :)

                            I finally found the Help button I was looking for yesterday that describes the markdown syntax.

                            1 Reply Last reply
                            0
                            • JonBJ JonB

                              @Pfanne said in ui detect mouse event on objects:

                              this worked:
                              connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

                              Correct.

                              finaly this worked:
                              connect(ioGroup, SIGNAL(idClicked(int)), this, SLOT(on_ioGroup_clicked(int)));

                              Since you had it correct first why change it?

                              P Offline
                              P Offline
                              Pfanne
                              wrote on last edited by Pfanne
                              #20

                              @JonB
                              the first version:

                              connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
                              

                              is without the object ID, implementing the ID in this version a error occurse.

                              M 1 Reply Last reply
                              0
                              • P Pfanne

                                @JonB
                                the first version:

                                connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
                                

                                is without the object ID, implementing the ID in this version a error occurse.

                                M Offline
                                M Offline
                                mpergand
                                wrote on last edited by
                                #21

                                @Pfanne said in ui detect mouse event on objects:

                                connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

                                As I said earlier, you have to pass an address:

                                connect(ioGroup, &QButtonGroup::idClicked, this, &MainWindow::on_ioGroup_clicked);

                                1 Reply Last reply
                                2
                                • JonBJ JonB

                                  @mpergand said in ui detect mouse event on objects:

                                  &MainWindow::on_ioGroup_clicked);

                                  OIC I missed that when OP said it was correct.

                                  JonBJ Offline
                                  JonBJ Offline
                                  JonB
                                  wrote on last edited by
                                  #22

                                  @Pfanne

                                  @JonB said in ui detect mouse event on objects:

                                  @mpergand said in ui detect mouse event on objects:

                                  &MainWindow::on_ioGroup_clicked);

                                  OIC I missed that when OP said it was correct.

                                  You can see for yourself (when it's written in monospace) that in your
                                  connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

                                  one method reference has a preceding & and the other does not, and thereby tell what you had is not correct.

                                  P 1 Reply Last reply
                                  0
                                  • JonBJ JonB

                                    @Pfanne

                                    @JonB said in ui detect mouse event on objects:

                                    @mpergand said in ui detect mouse event on objects:

                                    &MainWindow::on_ioGroup_clicked);

                                    OIC I missed that when OP said it was correct.

                                    You can see for yourself (when it's written in monospace) that in your
                                    connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);

                                    one method reference has a preceding & and the other does not, and thereby tell what you had is not correct.

                                    P Offline
                                    P Offline
                                    Pfanne
                                    wrote on last edited by
                                    #23

                                    @JonB

                                    connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
                                    

                                    OK, I think I understand, but this try worked, without ID but it creates a event on every click.
                                    Without the reference (&) to MainWindow....

                                    But it´s OK, this try:

                                    connect(ioGroup, SIGNAL(idClicked(int)), this, SLOT(on_ioGroup_clicked(int)));
                                    

                                    is exactly the way that I use (SIGNAL -> SLOT) for my other connections.

                                    Thanks for your support!

                                    Christian EhrlicherC 1 Reply Last reply
                                    0
                                    • P Pfanne

                                      @JonB

                                      connect(ioGroup, &QButtonGroup::idClicked, this, MainWindow::on_ioGroup_clicked);
                                      

                                      OK, I think I understand, but this try worked, without ID but it creates a event on every click.
                                      Without the reference (&) to MainWindow....

                                      But it´s OK, this try:

                                      connect(ioGroup, SIGNAL(idClicked(int)), this, SLOT(on_ioGroup_clicked(int)));
                                      

                                      is exactly the way that I use (SIGNAL -> SLOT) for my other connections.

                                      Thanks for your support!

                                      Christian EhrlicherC Online
                                      Christian EhrlicherC Online
                                      Christian Ehrlicher
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #24

                                      @Pfanne said in ui detect mouse event on objects:

                                      is exactly the way that I use (SIGNAL -> SLOT) for my other connections.

                                      But you should switch to the pmf syntax for your own sake.

                                      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                      Visit the Qt Academy at https://academy.qt.io/catalog

                                      P 1 Reply Last reply
                                      1
                                      • Christian EhrlicherC Christian Ehrlicher

                                        @Pfanne said in ui detect mouse event on objects:

                                        is exactly the way that I use (SIGNAL -> SLOT) for my other connections.

                                        But you should switch to the pmf syntax for your own sake.

                                        P Offline
                                        P Offline
                                        Pfanne
                                        wrote on last edited by
                                        #25

                                        @Christian-Ehrlicher

                                        should I use the pmf syntax only for object events or also for function events too?

                                        Pl45m4P 1 Reply Last reply
                                        0
                                        • P Pfanne

                                          @Christian-Ehrlicher

                                          should I use the pmf syntax only for object events or also for function events too?

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

                                          @Pfanne

                                          What are object or function events from your perspective?
                                          You can't connect events, you connect signals there.
                                          And yes, use the function pointer connection style. Every time you make a signal connection


                                          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
                                          1

                                          • Login

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