【问题标题】:qt How to pass a QkeySequence of a qshortcut() to function through connect(Signal,Slot)?qt如何通过connect(Signal,Slot)传递qshortcut()的QkeySequence来发挥作用?
【发布时间】:2014-12-01 20:05:31
【问题描述】:

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

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(),还有别的办法吗?欢迎任何帮助。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    是的,没有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();
          ...
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多