有关为QPushButton指定快捷方式的文档如下:
可以通过在首选字符前加上文本中的&符号来指定快捷键。例如:
QPushButton *button = new QPushButton("&Download", this);
在此示例中,快捷键为Alt + D.
如果我不想要Alt+[A-Z]
快捷方式,该怎么办?例如,在我的情况下,我希望在按下TAB
按钮时触发我的按钮。我怎样才能达到这个效果?
答案 0 :(得分:7)
答案 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);