PyQT5 学习笔记:第三节 QWidget类 鼠标QCursor 设置、父子关系、层级关系API及用法实例
前言:
上一节的内容介绍了QWidget类中窗口创建、大小设置及内容边距等API及用法的知识点。
本节主要对QWidget类中的鼠标设置、父子关系及层级关系进行讲解。
1 鼠标设置API及用法实例
1.1 API一览
项目 | 说明 |
---|---|
setCursor() | 设置鼠标形状 |
unsetCursor() | 重置形状 |
cursor() | 获取鼠标 |
setMouseTracking(bool) | 设置鼠标是否跟踪 |
hasMouseTracking() | 判定是否设置了鼠标跟踪 |
QCursor | 鼠标对象 |
pos() | 获取鼠标位置 |
setPos(x, y) | 设置鼠标位置坐标 |
1.2 PyQT5自带的鼠标形状
Qt.ArrowCursor
Qt.UpArrowCursor
Qt.CrossCursor
Qt.IBeamCursor
Qt.WaitCursor
Qt.BusyCursor
Qt.ForbiddenCursor
Qt.PointingHandCursor
Qt.WhatsThisCursor
Qt.SizeVerCursor
Qt.SizeHorCursor
Qt.SizeBDiagCursor
Qt.SizeAllCursor
Qt.SplitVCursor
Qt.SplitHCursor
Qt.OpenHandCursor
Qt.ClosedHandCursor
Qt.BlankCursor
1.3 API测试
设置鼠标形状:
可以设置整个窗口的鼠标形状,也可以设置窗口中某一控件的鼠标形状。
import sys
from PyQt5.Qt import
app = QApplication(sys.argv)
window = QWidget()
window.resize(300,200)
# 设置鼠标形状,在窗口中的形状
window.setCursor(Qt.OpenHandCursor)
button = QPushButton(window)
button.move(0,50)
button.setText('按钮控件')
# 设置鼠标在按钮控件上的形状
button.setCursor(Qt.PointingHandCursor)
window.show()
sys.exit(app.exec_())
效果图:
自定义鼠标形状:
创建通过创建QCursor对象,可以自定义鼠标形状。
QCursor(QPixmap, hotX: int = -1, hotY: int = -1)
QPixmap:图片对象;
hotX 与 hotY :自定义鼠标图像的点击基点,默认值都为:-1,指图片的中心位置。
这里我们引用两张图片:
z1.png
z2.png
代码:
window2 = QWidget()
window2.resize(300,200)
window2.setCursor(QCursor(QPixmap('z1.png')))
c2_label = QLabel(window2)
c2_label.setText('标签控件')
c2_label.resize(100,100)
c2_label.setStyleSheet('background-color:red;')