繁体   English   中英

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

[英]qt How to pass a QkeySequence of a qshortcut() to function through connect(Signal,Slot)?

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

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()之外还有其他方法吗? 欢迎任何帮助。

谢谢。

是的,没有activated(QKeySequence)这样的信号activated(QKeySequence) ,你必须连接到activated()的信号activated()

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

但是您可以使用sender()获取插槽中的真正快捷方式:

 void keybord_shortcuts()
 {
      QShortcut* shortcut = qobject_cast<QShortcut*>(sender());
      QKeySequence seq = shortcut->key();
      ...
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM