我想知道是否有人知道如何为一个按钮设置多个快捷方式。例如,我有一个QPushButton,我想要链接到Return键和Enter键(键盘和数字键盘)。
如果在设计师中我输入了快捷方式字段:
Return, Enter
只有Enter响应,而不是Return。
我也试过设置Return in designer和我输入的源代码:
ui.searchButton->setShortcut( tr("Enter") );
这似乎只响应Enter(数字键盘)而不是Return(键盘)。
有谁知道如何设置QPushButton的多个快捷方式?仅供参考我正在使用Qt4.7。
答案 0 :(得分:3)
作为qt菜鸟,我正在寻找一种方法来为一个按钮添加多个快捷方式。这里的答案很有帮助,但我仍然需要努力将所有部分放在一起。所以我想我会在这里发布完整的答案,希望能帮助其他跟随我的人。
我很抱歉这是用PyQt写的,但我相信它会传达这个想法。
'$s->name'
以下是生成的按钮:http://i.stack.imgur.com/tb5Mh.png(作为菜鸟,我不允许将图片直接嵌入帖子中。)
我希望这有用。
答案 1 :(得分:1)
我不使用QtCreator所以这里有两个代码解决方案,我会解决这个问题。
<强> 1 强>
对于这些情况,我会覆盖keyPressEvent
(例如您的主窗口或您希望快捷方式所在的位置)。
部首:
protected:
virtual void keyPressEvent( QKeyEvent* e );
来源:
void main_window::keyPressEvent( QKeyEvent* e )
{
switch( e->key() )
{
case Qt::Key_Enter:
case Qt::Key_Return:
// do what you want, for example:
QMessageBox::information( this,
"Success",
"Let me guess, you pressed the return key or the enter key." );
break;
default:
;
}
QMainWindow::keyPressEvent( e );
}
<强> 2 强>
我认为也可以创建和连接多个QShortcut对象。
只需创建所需的所有快捷方式,然后将activated
- 信号连接到要接收快捷方式的对象的插槽。
答案 2 :(得分:1)
似乎是一个小解决方法,但您可以使用QAction设置多个shortcuts on it并将其连接到您的QPushButton。 (类似地,您可以创建多个QShortcut对象并将它们连接到按钮。)