如何为QPushButton指定快捷方式?

时间:2014-09-22 15:03:43

标签: c++ qt qpushbutton

有关为QPushButton指定快捷方式的文档如下:


可以通过在首选字符前加上文本中的&符号来指定快捷键。例如:

QPushButton *button = new QPushButton("&Download", this);

在此示例中,快捷键为Alt + D.


如果我不想要Alt+[A-Z]快捷方式,该怎么办?例如,在我的情况下,我希望在按下TAB按钮时触发我的按钮。我怎样才能达到这个效果?

4 个答案:

答案 0 :(得分:7)

您可以使用setShortcut方法,例如:

pushButton->setShortcut(QKeySequence(Qt::Key_Tab));

它将触发分配给clicked()信号的插槽

答案 1 :(得分:3)

您可以使用QShortcut。另一个提示:Qt信号/插槽机制允许您将信号连接到信号。

答案 2 :(得分:0)

您可以重载QWidget :: keyPressEvent并直接触发按钮或通过以前特别连接的信号触发

void MainWindow::keyPressEvent(QKeyEvent * pEvent)
{
    if (Qt::Key_Tab == pEvent->key())
    {
        ui->button->click();
    }

    QMainWindow::keyPressEvent(pEvent);
}

答案 3 :(得分:0)

您可以在QShortcut的构造函数中定义键,目标对象及其相关位置:

QShortcut * shortcut = new QShortcut(QKeySequence(Qt::Key_Tab),button,SLOT(click()));
shortcut->setAutoRepeat(false);