捕获鼠标事件
所有widget类都含有四个鼠标事件,分别代表着双击,移动,单击,释放:
def mouseDoubleClickEvent(self,event):
# mouseMoveEvent 默认只捕获‘一直按下’鼠标左键的‘鼠标移动’
# 如果想让他捕获所有鼠标移动事件,需要在父子控件中都设置setMouseTracking,如下:
# self.setMouseTracking(True)
# self.label.setMouseTracking(True)
def mouseMoveEvent(self,event):
def mousePressEvent(self,event):
def mouseReleaseEvent(self,event):
只要像之前自定义控件那样重载一下这些函数就可以了
再来看看event给我们提供了哪些信息
pos = event.pos() # 提供了以Qpoint来实现的位置信息
x,y = pos.x(),pos.y() # 可以获取其横纵坐标
event.button() # 返回一个·类·,用于标明是左击还是右击
有了这些,就可以写处炫酷的鼠标跟随效果了
捕获其他事件
例如窗口大小改变事件,我们只需要类似的改写resizeEvent即可,不再赘述
更改鼠标的图案:
QT的每个Widgets与Frame都提供了setCursor函数,可以将鼠标设定为给定的图标,我们推荐的图标大小为32 * 32
setCursor函数需要传入一个QCursor对象,该对象可以从QtGui中导入
<