Qt中的事件系统是没有鼠标左右键同时点击这个事件的,可能是为了可扩充性而保留的,不过通过继承Qt中的相关控件类并且重写鼠标的一些事件函数我们可以很方便的做出鼠标左右键同时点击这个事件.
原理
因为只是给按钮加一个事件,所以直接就可以继承QPushButton,重写一下MousePressEvent,加入左右键同时按下的判断并发出MouseLeftRightClick这个信号就可以了.
继承QPushButton的QButtonEx类
在QButtonEx类中重写mousePressEvent:
要注意的是当我们处理完之后应该调用父类的mousePressEvent事件,不然事件就在这里结束了,那么像Clicked()这样的事件就会被拦截掉.
效果如下,Clicked()事件正常进行,当左右键同时按下时击发mouseLeftRightClick()事件: