Qt 如何捕捉Ctrl键释放?

Qt 如何捕捉Ctrl键释放?,qt,keyrelease,Qt,Keyrelease,我按Ctrl键。 我的第一个功能运行良好: void MainWindow::keyPressEvent(QKeyEvent *event){ if(event->modifiers()==Qt::CTRL){ //RETURNS TRUE ui->widget->groupmaking=true; } } 在第二种情况下,我很难检查释放了哪种密钥。(是Ctrl) 那么,如何正确捕获Ctrl-release呢?这种行

我按Ctrl键。 我的第一个功能运行良好:

void MainWindow::keyPressEvent(QKeyEvent *event){
    if(event->modifiers()==Qt::CTRL){               //RETURNS TRUE
        ui->widget->groupmaking=true;
    } }
在第二种情况下,我很难检查释放了哪种密钥。(是Ctrl)


那么,如何正确捕获Ctrl-release呢?

这种行为的原因是,当您获得key release事件时,因为Ctrl键已经被释放,所以此时没有key修饰符。执行此类检查的正确方法是:

void keyReleaseEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Control) {
        [..]
    }
}

出现这种行为的原因是,在获取“关键点释放”事件时,此时没有关键点修改器,因为Ctrl键已被释放。执行此类检查的正确方法是:

void keyReleaseEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Control) {
        [..]
    }
}

如果您找到了解决方案,请将其作为您问题的答案发布,并最终接受您自己的答案。如果您找到了解决方案,请将其作为您问题的答案发布,并最终接受您自己的答案。