写在前头的话
本博客介绍PyQt5鼠标事件及鼠标样式修改
- 做GUI编程很常见的一个需求,要将按钮或者其他控件的光标移入、移出、按压时三种情况的控件样式都不一样,有些人把这三种情况叫做控件的三态
- 另一种情况需要更改光标的样式
更改光标样式
用例:
class demo(QWidget):
def __init__(self, parent=None):
super(demo, self).__init__(parent)
self.setGeometry(desktopRect) #将窗口设置成全屏
self.setCursor(Qt.CrossCursor) #设置鼠标形状为十字形
参数 | 效果 |
---|---|
PointingHandCursor | 变为手型 |
CrossCursor | 变为十字型 |
ArrowCursor | 变为箭头型 |
UpArrowCursor | 变为向上箭头型 |
IBeamCursor | 变为文本输入型 |
WaitCursor | 变为等待型 |
BusyCursor | 变为繁忙型 |
ForbiddenCursor | 变为禁止型 |
WhatsThisCursor | 变为问号型 |
SizeVerCursor | 变为垂直拖拽型 |
SizeHorCursor | 变为水平拖拽性 |
SizeBDiagCursor | 变为对角线调整大小型 |
SizeAllCursor | 变为移动对象型 |
SplitHCursor | 变为水平拆分型 |
SplitVCursor | 变为垂直拆分型 |
OpenHandCursor | 变为打开型 |
ClosedHandCursor | 变为关闭型 |
BlankCursor | 变为空白型 |
鼠标移入事件
- 如果想要将控件的鼠标移入或者移出绑定函数、搞自己的功能,那就得写一个类继承此控件(QLable、QPushButton)然后重写此类的相关方法
用例:
def mousePressEvent(self, event):
print("Mouse moved.")
- 相关事件总结(使用方法与上一致)
事件 | 触发条件 |
---|---|
enterEvent | 鼠标移入触发 |
leaveEvent | 鼠标离开触发 |
mouseDoubleClickEvent | 鼠标双击点击触发 |
mouseMoveEvent | 鼠标移动触发 |
mousePressEvent | 鼠标按压触发 |
mouseReleaseEvent | 鼠标释放触发 |