当按钮被禁用时,Qt禁用QShortcut按钮

时间:2011-12-09 00:17:36

标签: qt qt4

我是QT的初学者。我已经使用QShortcuts将键绑定到按钮。

QShortcut *sb_0 = new QShortcut(QKeySequence(Qt::Key_0), this);
connect(sb_0, SIGNAL(activated()), ui.b_0, SIGNAL(clicked()));

但是,当禁用b_0时,快捷方式仍然有效。

ui.b_0->setEnabled(FALSE);

我想,不知怎的,当我禁用按钮时禁用快捷方式。我想我可以将QShortcut与QPushbutton断开连接;然而,这似乎不是最好的主意。

另外,我想知道是否有可能让它按下按键'0',按钮按下(按下),然后当它被释放时按钮返回正常。所以基本上,推'0'就像左键点击b_0。

如果已经回答(我找不到答案),请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:3)

为什么不在QPushButton上调用setShortcut?

void  setShortcut ( const QKeySequence & key )

这是在QAbstractButton类中提供的,因此在文档中找到它可能不是最明显的事情。

 ui.b_0->setShortcut(QKeySequence(Qt::Key_0));

这应该可以解决问题。该按钮已经处理了如果未启用按钮会发生什么。