12345678910111213141516171819202122232425262728293031 |
- 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)
|