from PyQt5.QtWidgets import QLabel from PyQt5.QtGui import QMouseEvent from PyQt5.QtCore import Qt # 语义识别文字,可拖拽图标界面 class DraggableWindow(QLabel): def __init__(self, parent=None): super().__init__(parent) self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint, True) self.setWindowFlag(Qt.WindowType.FramelessWindowHint, True) self.setWindowFlag(Qt.WindowType.Tool, True) self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground) self.setMouseTracking(True) self.dragging = False self.offset = None def mousePressEvent(self, event: QMouseEvent) -> None: if event.button() == Qt.MouseButton.LeftButton: self.dragging = True self.offset = event.pos() def mouseReleaseEvent(self, event: QMouseEvent) -> None: if event.button() == Qt.MouseButton.LeftButton: self.dragging = False def mouseMoveEvent(self, event: QMouseEvent) -> None: if self.dragging: delta = event.pos() - self.offset self.move(self.pos() + delta)