QMouseevent 鼠标事件

QMouseevent 鼠标事件

Qt的Dialog类中可以使用鼠标事件
使用鼠标事件的时候加头文件

#include <QMouseEvent>

鼠标事件都有:(函数声明添加到类的protected:中)

    void mousePressEvent(QMouseEvent *);    //按下
    void mouseMoveEvent(QMouseEvent *);    //移动
    void mouseReleaseEvent(QMouseEvent *);    //释放
    void mouseDoubleClickEvent(QMouseEvent *)    //双击
    void wheelEvent(QWheelEvent *event)  //滚轮.添加头文件#include <QWheelEvent>

函数实现:

void Dialog::mousePressEvent(QMouseEvent *event) 
{    if(event->button()==Qt::LeftButton) //鼠标左键按下
        ...}

void Dialog::mouseMoveEvent(QMouseEvent *event)
{    if(event->buttons()&Qt::LeftButton) //鼠标左键按下的同时移动鼠标
        ...}

void Dialog::mouseReleaseEvent(QMouseEvent *event)
{ 
    if(event->button() == Qt::LeftButton) //鼠标左键释放
        ...}
             
void Dialog::mouseDoubleClickEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)    // 如果是鼠标左键按下
        ···}
        
void Dialog::wheelEvent(QWheelEvent *event)
{
    if(event->delta()>0)  //当滚轮远离使用者
        ...
    else  //当滚轮向使用者方向旋转
        ...}
        


其中mouseMoveEvent(QMouseEvent *) 在按键按下并且鼠标移动的时候触发。

如果要自动触发设置:

setMouseTracking(true);

鼠标状态有:

Qt::LeftButton        //左键
Qt::RightButton        //右键
Qt::MidButton        //中键

pos() posF() x() y()获得接收鼠标事件时鼠标的坐标

event->pos()  //返回坐标,为整型
event->posF()  //返回坐标,为float型更加精确
event->x()  //相当于event->pos().x()
event->y()  //相当于event->pos().y()

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值