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. QMouseEvent on button click

QMouseEvent on button click

Scheduled Pinned Locked Moved Solved General and Desktop
qmouseevent
15 Posts 2 Posters 7.0k Views
  • 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.
  • U uruloke
    8 Nov 2015, 11:54

    @mrjj Thank you @mrjj.
    It was this line here I had trouble with defining myself
    QPoint p = mapFromGlobal(QCursor::pos());

    M Offline
    M Offline
    mrjj
    Lifetime Qt Champion
    wrote on 8 Nov 2015, 11:57 last edited by mrjj 11 Aug 2015, 11:58
    #4

    @uruloke
    well also I forgot to mention
    to use QMouseEvent
    you would override
    void mousePressEvent(QMouseEvent *eventPress);
    for the widget.
    like here
    http://doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html

    U 1 Reply Last reply 8 Nov 2015, 12:03
    0
    • M mrjj
      8 Nov 2015, 11:57

      @uruloke
      well also I forgot to mention
      to use QMouseEvent
      you would override
      void mousePressEvent(QMouseEvent *eventPress);
      for the widget.
      like here
      http://doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html

      U Offline
      U Offline
      uruloke
      wrote on 8 Nov 2015, 12:03 last edited by uruloke 11 Aug 2015, 12:03
      #5

      @mrjj
      Okay, so Qcursor works for me, but I cannot get QMouseEventto work correctly.

      void MainWindow::on_screen2Button_clicked(QMouseEvent *eventPress) { QPoint p = mapFromGlobal(eventPress->globalPos()); ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.x())); }
      It doesn't give me any errors, but it doesn't print the text out either, it worked with Qcursor though

      EDIT 1:
      cool, will look into the example.

      M 1 Reply Last reply 8 Nov 2015, 12:07
      0
      • U uruloke
        8 Nov 2015, 12:03

        @mrjj
        Okay, so Qcursor works for me, but I cannot get QMouseEventto work correctly.

        void MainWindow::on_screen2Button_clicked(QMouseEvent *eventPress) { QPoint p = mapFromGlobal(eventPress->globalPos()); ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.x())); }
        It doesn't give me any errors, but it doesn't print the text out either, it worked with Qcursor though

        EDIT 1:
        cool, will look into the example.

        M Offline
        M Offline
        mrjj
        Lifetime Qt Champion
        wrote on 8 Nov 2015, 12:07 last edited by mrjj 11 Aug 2015, 12:08
        #6

        @uruloke
        you have to add

        protected:
        void mousePressEvent(QMouseEvent *eventPress);

        to mainwindow .H
        and
        void mousePressEvent(QMouseEvent *eventPress) {
        }
        in .cpp

        its a virtual function and must be named like this.
        It will then be called by system.
        What you seems to try is to put MouseEvent *eventPress to a button click.
        and it will be zero as it not filled out by system since a buttons click is not the same as mouse click.
        so you sort of give it a empty QMouseEvent.

        Note its protected: that is important.

        U 1 Reply Last reply 8 Nov 2015, 12:14
        0
        • M mrjj
          8 Nov 2015, 12:07

          @uruloke
          you have to add

          protected:
          void mousePressEvent(QMouseEvent *eventPress);

          to mainwindow .H
          and
          void mousePressEvent(QMouseEvent *eventPress) {
          }
          in .cpp

          its a virtual function and must be named like this.
          It will then be called by system.
          What you seems to try is to put MouseEvent *eventPress to a button click.
          and it will be zero as it not filled out by system since a buttons click is not the same as mouse click.
          so you sort of give it a empty QMouseEvent.

          Note its protected: that is important.

          U Offline
          U Offline
          uruloke
          wrote on 8 Nov 2015, 12:14 last edited by
          #7

          @mrjj
          Ah so if I want it to run when a mouse is pressed I just have to run the mousePressEvent(QMouseEvent *eventPress)inside my onButtonClicked event?

          M 1 Reply Last reply 8 Nov 2015, 12:16
          0
          • U uruloke
            8 Nov 2015, 12:14

            @mrjj
            Ah so if I want it to run when a mouse is pressed I just have to run the mousePressEvent(QMouseEvent *eventPress)inside my onButtonClicked event?

            M Offline
            M Offline
            mrjj
            Lifetime Qt Champion
            wrote on 8 Nov 2015, 12:16 last edited by
            #8

            @uruloke
            well Im not sure I understand.
            Why dont you just run when button is clicked ?

            mousePressEvent is for click on some spot on mainwindow where no control.

            Dont call the mousePressEvent your self. system call it.

            U 1 Reply Last reply 8 Nov 2015, 12:23
            0
            • M mrjj
              8 Nov 2015, 12:16

              @uruloke
              well Im not sure I understand.
              Why dont you just run when button is clicked ?

              mousePressEvent is for click on some spot on mainwindow where no control.

              Dont call the mousePressEvent your self. system call it.

              U Offline
              U Offline
              uruloke
              wrote on 8 Nov 2015, 12:23 last edited by
              #9

              @mrjj
              Ah, yeah I forgot that it was an event :)

              void mousePressEvent(QMouseEvent *eventPress) { QPoint p = mapFromGlobal(eventPress->globalPos()); ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.x())); }

              I get errors on mapFromGlobal now and ui, didn't get that before.

              M 1 Reply Last reply 8 Nov 2015, 12:26
              0
              • U uruloke
                8 Nov 2015, 12:23

                @mrjj
                Ah, yeah I forgot that it was an event :)

                void mousePressEvent(QMouseEvent *eventPress) { QPoint p = mapFromGlobal(eventPress->globalPos()); ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.x())); }

                I get errors on mapFromGlobal now and ui, didn't get that before.

                M Offline
                M Offline
                mrjj
                Lifetime Qt Champion
                wrote on 8 Nov 2015, 12:26 last edited by mrjj 11 Aug 2015, 12:28
                #10

                @uruloke
                try with

                eventPress->pos().x();
                eventPress->pos().y();

                and no mapFromGlobal

                oh and make sure its maiwindow::mousePressEvent(...) else it wont compile
                if you are in the .cpp file.

                U 1 Reply Last reply 8 Nov 2015, 12:31
                1
                • M mrjj
                  8 Nov 2015, 12:26

                  @uruloke
                  try with

                  eventPress->pos().x();
                  eventPress->pos().y();

                  and no mapFromGlobal

                  oh and make sure its maiwindow::mousePressEvent(...) else it wont compile
                  if you are in the .cpp file.

                  U Offline
                  U Offline
                  uruloke
                  wrote on 8 Nov 2015, 12:31 last edited by
                  #11

                  @mrjj
                  thanks a lot for the help.
                  It was just the mapFromGlobal that fucked it up.
                  It worked when I removed that.

                  QPoint p = eventPress->globalPos();
                  ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.y()));

                  M 1 Reply Last reply 8 Nov 2015, 12:33
                  0
                  • U uruloke
                    8 Nov 2015, 12:31

                    @mrjj
                    thanks a lot for the help.
                    It was just the mapFromGlobal that fucked it up.
                    It worked when I removed that.

                    QPoint p = eventPress->globalPos();
                    ui->pixMap->setText( QString::number(p.x()) + "," + QString::number(p.y()));

                    M Offline
                    M Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on 8 Nov 2015, 12:33 last edited by
                    #12

                    @uruloke
                    ok.super.

                    Can I ask what you are programming ?

                    U 1 Reply Last reply 8 Nov 2015, 12:58
                    0
                    • M mrjj
                      8 Nov 2015, 12:33

                      @uruloke
                      ok.super.

                      Can I ask what you are programming ?

                      U Offline
                      U Offline
                      uruloke
                      wrote on 8 Nov 2015, 12:58 last edited by
                      #13

                      @mrjj Sure, I am making a program to take screenshots with. So I need the mouse global position to mark the area to screenshot.

                      M 1 Reply Last reply 8 Nov 2015, 13:00
                      0
                      • U uruloke
                        8 Nov 2015, 12:58

                        @mrjj Sure, I am making a program to take screenshots with. So I need the mouse global position to mark the area to screenshot.

                        M Offline
                        M Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on 8 Nov 2015, 13:00 last edited by
                        #14

                        @uruloke
                        ahh. such beast. :)
                        make sure to borrow from
                        http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html

                        U 1 Reply Last reply 8 Nov 2015, 13:11
                        0
                        • M mrjj
                          8 Nov 2015, 13:00

                          @uruloke
                          ahh. such beast. :)
                          make sure to borrow from
                          http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html

                          U Offline
                          U Offline
                          uruloke
                          wrote on 8 Nov 2015, 13:11 last edited by
                          #15

                          @mrjj
                          I will, thanks for everything :)

                          1 Reply Last reply
                          0

                          13/15

                          8 Nov 2015, 12:58

                          • Login

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