1. API
设置鼠标形状
例:
window = QWidegt()
window.setCursor(Qt.ArrowCursor)
自定义鼠标形状:
window = QWidget()
window.setWindowTitle('鼠标操作')
window.resize(500, 500)
pixmap = QPixmap('xxx.png')
nwe_pixmap = pixmap.scaled(50, 50) # 大小
cursor = QCursor(new_pixmap, 0, 0) # 后2个参数为: 热点(作用)位置(hotX: int = -1,
hotY: int = -1),默认值为:-1, 表示图片的中心位置
window.setCursor(cursor)
重置形状
window.unsetCursor()
鼠标跟踪
class MyWindow(QWidget):
def mouseMoveEvent(self, me):
print('moved!')
app = QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle('鼠标操作')
window.resize(500, 500)
window.setMouseTracking(True)
2.案例
import sys
from PyQt5.Qt import *
class MyWindow(QWidget):
def mouseMoveEvent(self, mv):
print('moved!', mv.localPos())
label = self.findChild(QLabel)
# label.move(200, 200)
label.move(mv.localPos().x(), mv.localPos().y())
app = QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle('鼠标操作')
window.resize(500, 500)
window.move(200, 200)
window.setMouseTracking(True)
pixmap = QPixmap('xxx.png').scaled(50, 50)
cursor = QCursor(pixmap)
window.setCursor(cursor)
label = QLabel(window)
label.setText('Hello')
label.move(100, 100)
label.setStyleSheet('background-color: cyan;')
window.show()
sys.exit(app.exec_())
封装
import sys
from PyQt5.Qt import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('鼠标操作')
self.resize(500, 500)
self.move(200, 200)
self.setMouseTracking(True)
pixmap = QPixmap('xxx.png').scaled(50, 50)
cursor = QCursor(pixmap)
self.setCursor(cursor)
self.label = QLabel(self)
label = self.label
label.setText('Hello')
label.move(100, 100)
label.setStyleSheet('background-color: cyan;')
def mouseMoveEvent(self, mv):
print('moved!', mv.localPos())
label = self.findChild(QLabel)
# label.move(200, 200)
self.label.move(mv.localPos().x(), mv.localPos().y())
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())