I'm in a situation whereby I am trying to read in a JSON config file which dictates what key commands map to given actions. For example:
...
{
"Action": "Quit",
"Combo" : "CTRL+Q"
},
...
Constructing a QKeySequence
from the combo tag is trivial but I need to monitor QKeyEvent
s in order to trigger actions. Please note I have to monitor QKeyEvent
s because they are used for other purposes in the application as well. i.e. it would not be acceptable to only monitor key commands for QKeySequence
s (if that is even possible).
Short of writing a custom parser to construct a QKeyEvent
object for each "Combo"
tag, is there anyway of comparing a QkeyEvent
to a QKeySequence
? For example:
QKeyEvent KeyCommandsHandler::toKeyEvent(QKeySequence sequence) {
//somehow convert to QKeyEvent
}
A simple solution (written in python):
Will give you the entire sequence in string form, such as "Ctrl+Q".
The benefits are (at least in python) that you can find in a dict of shortcuts, while a QKeySequence would not have been hashable.
Beware that this expects you use the correct typecase and spacing. "ctrl +Q" will not match. To avoid all issues, you can do the following when first reading the shortcuts:
and match/find using
or better yet:
and match directly.