Qt中QAction快捷键触发事件

键盘单键触发事件:

void MainMenu::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_F1)//单键触发
        emit HandBook();    //发送信号触发事件
}

键盘组合键触发事件:

void MainMenu::keyPressEvent(QKeyEvent *event)
{
    if ((event->modifiers() == Qt::CTRL) && (event->key() == Qt::Key_Q))//组合键触发
        emit Exit();    //发送信号触发事件
}

鼠标触发事件:

void MainMenu::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton)  //鼠标单键触发
        emit HandBook();//发送信号触发事件
}

键盘按键Ctrl+鼠标左键触发事件:

void MainMenu::mousePressEvent(QMouseEvent *event)
{
    else if ((QApplication::keyboardModifiers() == Qt::CTRL) && (event->button() == Qt::LeftButton)) //Ctrl+鼠标左键组合
        emit Exit();//发送信号触发事件
}

猜你喜欢

转载自blog.csdn.net/qq_16093323/article/details/83341880