| 30 | BorderColor = QColor(150, 150, 150) |
| 31 | |
| 32 | def __init__(self, *args, **kwargs): |
| 33 | text = kwargs.pop("text", "") |
| 34 | super(BubbleLabel, self).__init__(*args, **kwargs) |
| 35 | # 设置无边框置顶 |
| 36 | self.setWindowFlags( |
| 37 | Qt.Window | Qt.Tool | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.X11BypassWindowManagerHint) |
| 38 | # 设置最小宽度和高度 |
| 39 | self.setMinimumWidth(200) |
| 40 | self.setMinimumHeight(48) |
| 41 | self.setAttribute(Qt.WA_TranslucentBackground, True) |
| 42 | layout = QVBoxLayout(self) |
| 43 | # 左上右下的边距(下方16是因为包括了三角形) |
| 44 | layout.setContentsMargins(8, 8, 8, 16) |
| 45 | self.label = QLabel(self) |
| 46 | layout.addWidget(self.label) |
| 47 | self.setText(text) |
| 48 | # 获取屏幕高宽 |
| 49 | self._desktop = QApplication.instance().desktop() |
| 50 | |
| 51 | def setText(self, text): |
| 52 | self.label.setText(text) |