【发布时间】:2023-04-01 07:12:01
【问题描述】:
我正在使用 PyQt5 创建一个应用程序。该应用程序有一个带有多个小部件的 MainWindow。其中一个小部件是显示视频的 QLabel 对象。当我选中单选按钮时,我想在将鼠标悬停在视频上时跟踪光标并显示光标坐标。
我创建了一个 MouseTracking 类,我将 QLabel 对象作为window 传递给它。我已经通过打印它的几何来验证传递到类中。但不知何故,我没有将鼠标跟踪与window 关联起来。这是 MouseTracking 类的代码。我做错了什么?
class MouseTracker(QLabel):
def __init__(self, window):
super().__init__(window)
self.window = window
self.window.setMouseTracking(True)
self.initUI()
def initUI(self):
self.label = QLabel(self)
self.label.setAlignment(Qt.AlignCenter)
self.label.setStyleSheet('background-color: white; border: 1px solid black')
self.show()
def mouseMoveEvent(self, event):
x = event.x()
y = event.y()
print("X, Y = ", x, y)
self.label.setGeometry(x+30, y-15, 90, 40)
self.label.setText('(%d, %d)' % (x, y))
【问题讨论】:
标签: python events pyqt5 qlabel event-tracking