| 22 | |
| 23 | |
| 24 | class FrameWidget(QWidget): |
| 25 | # 一个全屏的透明窗口 |
| 26 | |
| 27 | def __init__(self, *args, **kwargs): |
| 28 | super(FrameWidget, self).__init__(*args, **kwargs) |
| 29 | self.setWindowFlags(Qt.Tool | Qt.FramelessWindowHint | |
| 30 | Qt.WindowStaysOnTopHint) |
| 31 | self.setAttribute(Qt.WA_TranslucentBackground, True) |
| 32 | self.showFullScreen() # 全屏 |
| 33 | self._rect = QRect() # 被探测的窗口的矩形位置 |
| 34 | |
| 35 | def setRect(self, x, y, w, h): |
| 36 | # 更新矩形框 |
| 37 | self._rect.setX(x) |
| 38 | self._rect.setY(y) |
| 39 | self._rect.setWidth(w - x) |
| 40 | self._rect.setHeight(h - y) |
| 41 | self.update() |
| 42 | |
| 43 | def paintEvent(self, event): |
| 44 | super(FrameWidget, self).paintEvent(event) |
| 45 | if self._rect.isValid(): # 画边框 |
| 46 | painter = QPainter(self) |
| 47 | painter.setPen(QPen(Qt.red, 4)) |
| 48 | painter.drawRect(self._rect) |
| 49 | |
| 50 | |
| 51 | class Label(QLabel): |