2014-10-07 55 views
3

我試圖將幾個快捷方式連接到一個插槽,以獲取其鍵值並將其附加到變量。喜歡文字輸入的東西,所以我做這樣的事情:qt如何通過q​​shortcut()的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()?任何幫助歡迎。

謝謝。

回答

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(); 
     ... 
} 
+0

謝謝您!它的工作完美.. – psnot 2014-10-08 13:16:22

+0

如果它的工作完美,你應該標記接受的問題。 – 2015-05-26 12:35:49