请帮我用pyqt6写一个信息弹窗的代码 窗口出现在主屏幕的右下角并且 窗口要在5秒后自动消失,并且如果检测到多条数据,窗口要向上累积
时间: 2023-11-27 15:52:07 浏览: 75
以下是一个简单的信息弹窗的代码,使用了QLabel和QTimer:
```python
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *
from PyQt6.QtCore import *
class InfoWindow(QWidget):
def __init__(self):
super().__init__()
self.timer = QTimer(self)
self.timer.timeout.connect(self.close_window)
self.label = QLabel(self)
self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.label.setStyleSheet("background-color: #4CAF50; color: white; font-size: 20px;")
self.label.setFixedHeight(50)
self.setWindowFlags(Qt.WindowType.FramelessWindowHint | Qt.WindowType.ToolTip)
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
self.show()
def show_message(self, message):
self.label.setText(message)
self.label.adjustSize()
screen = QApplication.primaryScreen().availableGeometry()
x = screen.right() - self.label.width() - 10
y = screen.bottom() - self.height() - 10
self.move(x, y)
self.timer.start(5000)
def close_window(self):
self.timer.stop()
self.close()
if __name__ == "__main__":
app = QApplication([])
info_window = InfoWindow()
info_window.show_message("Hello World!")
info_window.show_message("This is a test message.")
info_window.show_message("This is another test message.")
app.exec()
```
运行代码后,会在屏幕的右下角出现一个信息弹窗,显示传入的消息。如果在5秒内收到多条消息,弹窗会向上累积。5秒后,弹窗会自动消失。
阅读全文