qt如何通过connect(Signal,Slot)传递qshortcut()的QkeySequence功能?

时间:2014-10-07 11:47:19

标签: c++ qt keyboard-shortcuts signals-slots qkeysequence

我尝试将多个快捷方式连接到一个插槽,以获取其键值并将其附加到变量。像文本输入的东西,所以我做这样的事情:

button_1 = new QShortcut::QShortcut(QKeySequence("1"),this);
connect(button_1,SIGNAL(activated(QKeySequence)),this, SLOT(keybord_shortcuts(QKeySequence)));

这是不正确的,因为activated()不会获得调用我的广告位keybord_shortcuts的快捷方式的序列。

No such signal QShortcut::activated(QKeySequence)

activated()之外还有其他方法吗?欢迎任何帮助。

感谢。

1 个答案:

答案 0 :(得分:3)

是的,没有此类信号activated(QKeySequence),您必须连接信号activated()

 connect(button_1, SIGNAL(activated()), this, SLOT(keybord_shortcuts()));

但是您可以使用sender()

在广告位中获得真正的快捷方式
 void keybord_shortcuts()
 {
      QShortcut* shortcut = qobject_cast<QShortcut*>(sender());
      QKeySequence seq = shortcut->key();
      ...
 }