Qt-事件处理-鼠标事件
2018-03-01 21:47
316 查看
根据书中的内容,简单的实现鼠标相关的内容
源代码如下.h
#ifndef MOUSEEVENT_H
#define MOUSEEVENT_H
#include <QMainWindow>
#include <QLabel>
#include <QStatusBar>
#include <QMouseEvent>
class MouseEvent : public QMainWindow
{
Q_OBJECT
public:
MouseEvent(QWidget *parent = 0);
~MouseEvent();
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
private:
QLabel *statusLabel;
QLabel *MousePosLabel;
};
#endif // MOUSEEVENT_H
工程代码:https://gitee.com/DreamLife-Technology_DreamLife/MouseEvent
源代码如下.h
#ifndef MOUSEEVENT_H
#define MOUSEEVENT_H
#include <QMainWindow>
#include <QLabel>
#include <QStatusBar>
#include <QMouseEvent>
class MouseEvent : public QMainWindow
{
Q_OBJECT
public:
MouseEvent(QWidget *parent = 0);
~MouseEvent();
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
private:
QLabel *statusLabel;
QLabel *MousePosLabel;
};
#endif // MOUSEEVENT_H
.cpp #include "mouseevent.h" MouseEvent::MouseEvent(QWidget *parent) : QMainWindow(parent) { setWindowTitle(tr("鼠标事件")); statusLabel = new QLabel; statusLabel->setText(tr("当前位置")); statusLabel->setFixedWidth(100); MousePosLabel = new QLabel; MousePosLabel->setText(tr("")); MousePosLabel->setFixedWidth(100); statusBar()->addPermanentWidget(statusLabel); statusBar()->addPermanentWidget(MousePosLabel); this->setMouseTracking(true); resize(400,200); } void MouseEvent::mousePressEvent(QMouseEvent *e) { QString str="("+QString::number(e->x())+","+QString::number(e->y()) +")"; if(e->button()==Qt::LeftButton) { statusBar()->showMessage(tr("左键")+str); } else if(e->button()==Qt::RightButton) { statusBar()->showMessage(tr("右键")+str); } else if(e->button()==Qt::MidButton) { statusBar()->showMessage(tr("中键")+str); } } void MouseEvent::mouseMoveEvent(QMouseEvent *e) { MousePosLabel->setText("("+QString::number(e->x())+","+QString::number(e->y())+")"); } void MouseEvent::mouseReleaseEvent(QMouseEvent *e) { QString str="("+QString::number(e->x())+","+QString::number(e->y()) +")"; statusBar()->showMessage(tr("释放在:")+str,3000); } void MouseEvent::mouseDoubleClickEvent(QMouseEvent *e){} MouseEvent::~MouseEvent() { }
工程代码:https://gitee.com/DreamLife-Technology_DreamLife/MouseEvent
相关文章推荐
- Qt 处理鼠标点击事件
- QT基础(二)----鼠标、键盘事件处理机制、信息拦截机制
- QT基础(二)----鼠标、键盘事件处理机制、信息拦截机制
- QT事件处理,鼠标事件,按键键盘事件,定时器,进度条。
- Qt 处理鼠标点击事件
- Qt事件处理机制整个流程--以鼠标在一个窗口中点击为例
- Qt事件处理机制整个流程--以鼠标在一个窗口中点击为例
- Qt 学习(8)Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针(转)
- Qt 键盘、鼠标事件的处理
- Qt GUI 通过鼠标事件剖析整个事件处理流程(基于Qt4.5.2源码windows平台)
- qt之键盘、鼠标事件处理
- Qt 键盘、鼠标事件的处理
- Qt学习之路——— Qt键盘、鼠标事件的处理
- Qt获得焦点和失去焦点处理事件 (Focus事件)
- 九、Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针
- Glut处理鼠标事件
- Qt 事件处理
- IE与其他浏览器处理鼠标事件的差异
- Qt事件处理(四)
- Qt绘制 QImage、QPixmap/事件处理