QT开发之自绘控件中获取单个键盘按键和组合键

本文详细介绍了在Qt中如何通过自定义控件捕获全局键盘事件,包括处理方向键、组合键等,并提供了实现代码示例。特别强调了使用grabKeyboard()方法的注意事项及其实现细节。

头文件中添加:

void keyPressEvent(QKeyEvent *event);

cpp

void 自绘控件::keyPressEvent(QKeyEvent *event)
{

    if(event->key() == Qt::Key_Up)//上
    {
      qDebug() << "press key up";
        return;
    }
    else if(event->key() == Qt::Key_Down)//下
    {
      qDebug() << "press key down";
      return;
    }
    else if (event->key() == Qt::Key_Left)//左右
    {
      qDebug() << "press key left";
      return;
    }
    else if (event->key() == Qt::Key_Right)//右
    {
      qDebug() << "press key right";
      return;
    }

    if ((event->modifiers() == Qt::ControlModifier) and (event->key() == Qt::Key_A) )//CTRL+A
    {
        qDebug()<<"ctrl-a";
    }
}

上面这样是无法获取组合键响应的,需要在构造函数中添加:this->grabKeyboard();//捕获键盘消息

注意:

帮组文档:

Grabs the keyboard input.

This widget receives all keyboard events until

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值