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
Forum Updated to NodeBB v4.3 + New Features

ui detect mouse event on objects

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