qt Как передать QkeySequence qshortcut() для работы через 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()? Любая помощь приветствуется.

Благодарю.

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();
      ...
 }
Другие вопросы по тегам