我有两个想要比较的 QKey 按下事件,一个按键由我的“AddShortcut”表单输入,我希望主表单将用户按键与在我的 Addshortcut 表单上输入的按键进行比较。
有没有办法比较这两个事件?
我不确定你到底想做什么,但QAction
如果你还没有看到它,我会指出它的存在。这是 Qt 实现键盘快捷键等的机制:
http://qt-project.org/doc/qt-4.8/qaction.html#details
至于您的具体问题,基线 QEvent 类没有定义相等或比较运算符。在任何情况下,平等都是一个模糊的话题(如果鼠标点击在相同的像素坐标上,它们是否相等?如果按下 Ctrl/Alt/Shift 会怎样)?
如果您只想测试两个按键事件以查看它们是否相等,您可以首先使用QEvent::type()测试以查看每个事件的类型。如果他们都是,QEvent::KeyPress
那么你可以static_cast<QKeyEvent>
参加这两个活动。然后您可以检查您感兴趣的任何部分是否相等。
显然有QKeyEvent::key()但也有修饰符,产生的文本等: