如何将KeyReleaseEvent与Button合并

时间:2014-01-14 11:41:35

标签: c++ qt qpushbutton qkeyevent

如何使用KeyReleaseEvent合并QPushButtonsignal。 我的意思是每当用户按下回车键按钮时应使用SLOT调用某些功能。那么我必须在信号中使用什么?

void mywindow::keyReleaseEvent(QKeyEvent *event)
{
    switch(event->key())
    {
        case Qt::Key_Enter:
            connect(button1, SIGNAL(clicked()), this, SLOT(fileNew()));
            connect(button2, SIGNAL(clicked()), this, SLOT(file()));
        break;  
    }
}

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您需要在按Enter键时单击某个按钮。您只需调用QAbstractButton::click()函数即可执行单击操作。

connect(button1,SIGNAL(clicked()),this,SLOT(fileNew()));
connect(button2,SIGNAL(clicked()),this,SLOT(file())); //do this in your constructor, or somewhere else.. just make sure you only do this once

void mywindow::keyReleaseEvent(QKeyEvent *event)
{
    switch(event->key())
    {
        case Qt::Key_Enter:
            button1->click();    
        break;    
    }
}

答案 1 :(得分:0)

shortcut属性来处理这种情况 我建议使用QActionshortcut。奖金功能丢失了。