4

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

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

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

No such signal QShortcut::activated(QKeySequence)

有没有别的办法activated()?欢迎任何帮助。

谢谢。

4

1 回答 1

4

是的,没有这样的信号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();
      ...
 }
于 2014-10-07T12:32:14.587 回答