C++ Qt QShortcut with numpad key -
qshortcut makes easy connect qshortcutevent (key press, combination or sequence) slot method, e.g.:
qshortcut *shortcut = new qshortcut( qkeysequence(qt::key_7), this, 0, 0, qt::applicationshortcut);
(hint: number keys, qsignalmapper can used map qshortcut's activated()
signal slot int
parameter).
however, in example, numlock (numpad enabled), both '7' keys trigger shortcut's activated()
signal.
is there way detect different keys other filtering or reimplementing widget's keypressevent , check qkeyevent::modifiers() qt::keypadmodifier?
digging further, found
qtbug-20191 qt::keypadmodifier not work setshortcut linking patch has been merged 4.8 in sept. 2012 , comes test case using
button2->setshortcut(qt::key_5 + qt::keypadmodifier);
which not work qshortcut on qt 4.8.1, i.e. neither of '7' keys recognized using (adding) modifier flag.
so guess quickest way installing filter detect modifier , let other keyevents handled default implementation useable qshortcut?
for can use keyreleaseevent(qkeyevent *event) example
void form::keyreleaseevent(qkeyevent *event) { int key = event->nativescancode(); if( key == 79 ) //value numpad 7 { //your statement } }
Comments
Post a Comment