mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QLabel>
#include<QStatusBar>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QLabel *labelStatus;
QLabel *labelMousePos;
protected:
void mouseMoveEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
};
#endif // MAINWINDOW_H
mainwindow.cpp:
#include "mainwindow.h"
#include<QMouseEvent>
#include<QString>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->resize(750,500);
setWindowTitle(tr("Get Mouse Event"));
setCursor(Qt::CrossCursor);
labelStatus=new QLabel();
labelStatus->setMinimumSize(100,20);
labelStatus->setText(tr("Mouse Position"));
labelStatus->setFixedWidth(100);
labelMousePos=new QLabel();
labelMousePos->setText(tr(""));
labelMousePos->setFixedWidth(80);
statusBar()->addPermanentWidget(labelStatus);
statusBar()->addPermanentWidget(labelMousePos);
this->setMouseTracking(true);
}
MainWindow::~MainWindow()
{
}
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{
labelMousePos->setText("("+QString::number(e->x())+","+QString::number(e->y())+")");
}
void MainWindow::mousePressEvent(QMouseEvent *e)
{
QString str="("+QString::number(e->x())+","+QString::number(e->y())+")";
if(e->button()==Qt::LeftButton)
{
statusBar()->showMessage(tr("Mouse Left Button Pressed: ")+str);
}
else if(e->button()==Qt::RightButton)
{
statusBar()->showMessage(tr("Message Right button Pressed: ")+str);
}
else if(e->button()==Qt::MidButton)
{
statusBar()->showMessage(tr("Message Middle button Pressed: ")+str);
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent *e)
{
QString str="("+QString::number(e->x())+","+QString::number(e->y())+")";
statusBar()->showMessage(tr("Mouse Release")+str,3000);
}
void MainWindow::mouseDoubleClickEvent(QMouseEvent *e)
{
QString str="("+QString::number(e->x())+","+QString::number(e->y())+")";
if(e->button()==Qt::LeftButton)
{
statusBar()->showMessage(tr("Mouse Left Button DoubleClicked: ")+str);
}
else if(e->button()==Qt::RightButton)
{
statusBar()->showMessage(tr("Message Right button DoubleClicked: ")+str);
}
else if(e->button()==Qt::MidButton)
{
statusBar()->showMessage(tr("Message Middle button DoubleClicked: ")+str);
}
}