QT开发(六)—— 鼠标,键盘事件

我们可以在QT中监听鼠标的各种事件和键盘的各种事件,在QT中,他已经为我们实现了这一系列的功能了,这个我们可以参考QEvent等事件类了,我这里就做一些简单的实际操作来带领大家认识一下这些有趣的函数;

一.鼠标事件

鼠标事件太多了,我一个个来讲

鼠标左键和右键的区分,以及点击的坐标轴值等,实际上的动作都是点击,所以我们有一个函数

  • mousePressEvent

所以我们可以在头文件中重写这个函数

protected:
    void mousePressEvent(QMouseEvent * event);
};

然后就是在源文件中去实现具体的逻辑了

//鼠标 点击
void MainWindow::mousePressEvent(QMouseEvent * e)
{
    //获取点击的下标
    qDebug() << e->x() << ":" << e->y();
    if(e->button() == Qt::LeftButton)
    {
        qDebug() << "左键" ;
    }
    else if(e->button() == Qt::RightButton)
    {
        qDebug() << "右键" ;
    }
}

这里写图片描述

这样我们就能获取你点击的时候的轴坐标以及你是左键还是右键了,那么,我们还有那些有趣的函数呢?

  • mouseMoveEvent
  • mouseReleaseEvent

这两个一个是移动一个是抬起

//鼠标 移动
void MainWindow::mouseMoveEvent(QMouseEvent * e)
{
    qDebug() << "move" << e->x() << ":" << e->y();
}
//鼠标 松开
void MainWindow::mouseReleaseEvent(QMouseEvent * e)
{
    qDebug() << "Release" << e->x() << ":" << e->y();
}

大家有兴趣可以试试

以上都是单击的事件,我们再来试试双击的事件

  • mouseDoubleClickEvent
void mouseDoubleClickEvent(QMouseEvent *event);

//鼠标 双击
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
{
    qDebug() << "双击";
}

好的,我们再来学习一个滚轮的事件

  • wheelEvent
//鼠标 滚轮
void MainWindow::wheelEvent(QWheelEvent *event)
{
    if(event->delta()>0)
    {
        qDebug() << "上滚";
    }
    else
    {
        qDebug() << "下滚";
    }
}

你可以发现,还是挺简单的, 这些基本上就够用了

二.键盘事件

键盘的事件,我们暂时先学一个就好了,那就是按下

  • void keyPressEvent(QKeyEvent *event);

至于他,我给大家看一段代码即可

//键盘事件
void MainWindow::keyPressEvent(QKeyEvent * event)
{
    switch (event->key())
    {
    case Qt::Key_Escape:
        qDebug() <<"ESC";
        break;
    case Qt::Key_F1:
        qDebug() <<"F1";
        break;
    case Qt::Key_F2:
        qDebug() <<"F2";
        break;
    case Qt::Key_5:
        qDebug() <<"5";
        break;
    case Qt::Key_Back:
        qDebug() <<"Back";
        break;
    case Qt::Key_Enter:
        qDebug() <<"Enter";
        break;
    case Qt::Key_A:
        qDebug() <<"A";
        break;
    case Qt::Key_B:
        qDebug() <<"B";
        break;
    case Qt::Key_C:
        qDebug() <<"C";
        break;
    default:
        qDebug() << event->key();
        break;
    }
}

对应的键值都在Qt类中保存着,也很好判断,当然,我们也还可以判断一些特殊的组合键,这个我希望大家自行去了解一下

最后,依旧要安利一下Qt的助手

这里写图片描述

嗯,你说你不知道在哪?Qt Assistant,自己在本机上搜下吧。

有兴趣的可以加群:690351511

  • 28
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘某人程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值