鼠标GUI程序中另外一种重要的交互方式,Qt中的鼠标事件包括鼠标点击、松开鼠标按键,移动鼠标到指定区域或者离开特定区域,更改鼠标指针的形状等等。
鼠标点击释放
对鼠标最常见的操作就是点击和释放,进行点击释放操作,将调用以下方法:
- mousePressEvent (self, event) : 鼠标键按下时调用;
- mouseReleaseEvent (self, event) : 鼠标键松开时调用;
- mouseDoubieCiickEvent (self, event) - 双击鼠标时调用。
必须注意在双击之前的其他事件。双击时的事件顺序为:mouseButtonPress --> mouseButtonRelease --> mouseButtonDblClick --> mouseButtonPress --> mouseButtonRelease。
QApplicaption类的setDoubleClickInterval()方法可设置双击的时间间隔;doubleClickInterval( )方法返回双击的时间间隔。
event参数是QMouseEvent对象,存储事件的其他信息。常用方法有:
- x() 和 y():返回相对于控件空间的鼠标坐标值;
- pos(): 返回相对于控件空间的QPoint对象;
- localPos():返回相对于控件空间的QPointF对象;
- globalX() 和 globalY(): 返回相对于屏幕的x,y 坐标值;
- globalPos(): 返回相对于屏幕的QPoint对象;
- windowPos(): 返回相对于窗口的QPointF对象;
- screenPos() : 返回相对于屏幕的QPointF对象;
- button(): 返回以下枚举值(只列举了部分),用以判断是哪个鼠标键触发了事件;
- Qt.NoButton (0): 没有按下鼠标键。例如移动鼠标时的button()返回值;
- Qt.LeftButton (1): 按下鼠标左键;
- Qt.Rig