4_2_QMouseEvent
作者:互联网
文章目录
1、鼠标事件
实际返回的是X Y坐标,上图左侧全局x,y相对于桌面坐标;右侧相对于窗体坐标。
鼠标按下事件如下:
2、widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
Init();
}
Widget::~Widget()
{
delete ui;
}
void Widget::Init(){
}
//鼠标移动事件 返回的是坐标
void Widget::mouseMoveEvent(QMouseEvent *event){
qDebug()<<"Move Event"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//按下鼠标事件 返回的是坐标
void Widget::mousePressEvent(QMouseEvent *event){
qDebug()<<"Press Event"<<endl;
event->button(); //1左键 2右键 4 中键
if(event->button() == Qt::LeftButton)
{
qDebug()<<"左键按下 val= "<<event->button()<<endl;
}
else if (event->button() == Qt::RightButton) {
qDebug()<<"右键按下val= "<<event->button()<<endl;
}
else if (event->button() == Qt::MiddleButton) {
qDebug()<<"中键按下val= "<<event->button()<<endl;
}
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//松开鼠标事件 返回坐标
void Widget::mouseReleaseEvent(QMouseEvent *event){
qDebug()<<"Realse Event"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//鼠标双击事件 返回坐标
void Widget::mouseDoubleClickEvent(QMouseEvent *event)
{
qDebug()<<"DoubleClick"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
3、widget.h
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
Init();
}
Widget::~Widget()
{
delete ui;
}
void Widget::Init(){
}
//鼠标移动事件 返回的是坐标
void Widget::mouseMoveEvent(QMouseEvent *event){
qDebug()<<"Move Event"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//按下鼠标事件 返回的是坐标
void Widget::mousePressEvent(QMouseEvent *event){
qDebug()<<"Press Event"<<endl;
event->button(); //1左键 2右键 4 中键
if(event->button() == Qt::LeftButton)
{
qDebug()<<"左键按下 val= "<<event->button()<<endl;
}
else if (event->button() == Qt::RightButton) {
qDebug()<<"右键按下val= "<<event->button()<<endl;
}
else if (event->button() == Qt::MiddleButton) {
qDebug()<<"中键按下val= "<<event->button()<<endl;
}
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//松开鼠标事件 返回坐标
void Widget::mouseReleaseEvent(QMouseEvent *event){
qDebug()<<"Realse Event"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
//鼠标双击事件 返回坐标
void Widget::mouseDoubleClickEvent(QMouseEvent *event)
{
qDebug()<<"DoubleClick"<<endl;
qDebug()<<event->globalPos()<<endl;//相对于桌面坐标
qDebug()<<event->windowPos()<<endl;//窗体坐标
}
标签:widget,globalPos,button,Widget,QMouseEvent,qDebug,windowPos 来源: https://blog.csdn.net/oDuanYanGuHong/article/details/122462012