pyqt5 实现右下角弹框
时间: 2023-12-05 22:05:50 浏览: 131
Qt 右下角弹出框
5星 · 资源好评率100%
以下是使用PyQt5实现右下角弹框的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt, QTimer
class Popup(QWidget):
def __init__(self, title, message, icon_path):
super().__init__()
self.title = title
self.message = message
self.icon_path = icon_path
self.initUI()
def initUI(self):
# 设置窗口大小和位置
self.setFixedSize(300, 100)
screen = QApplication.primaryScreen()
screen_rect = screen.availableGeometry()
self.move(screen_rect.right() - self.width(), screen_rect.bottom() - self.height())
# 设置窗口透明度和无边框
self.setWindowOpacity(0.9)
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool | Qt.WindowStaysOnTopHint)
# 设置布局
vbox = QVBoxLayout()
hbox = QHBoxLayout()
icon_label = QLabel()
pixmap = QPixmap(self.icon_path).scaled(50, 50, Qt.KeepAspectRatio, Qt.SmoothTransformation)
icon_label.setPixmap(pixmap)
hbox.addWidget(icon_label)
title_label = QLabel(self.title)
title_label.setStyleSheet("font-size: 16px; font-weight: bold;")
hbox.addWidget(title_label)
vbox.addLayout(hbox)
message_label = QLabel(self.message)
vbox.addWidget(message_label)
self.setLayout(vbox)
# 设置定时器
self.timer = QTimer()
self.timer.timeout.connect(self.close)
self.timer.start(5000)
if __name__ == '__main__':
app = QApplication([])
popup = Popup("提示", "这是一个弹框", "icon.png")
popup.show()
app.exec_()
```
这段代码创建了一个名为Popup的类,该类继承自QWidget类,用于创建右下角弹框。在initUI()方法中,设置了窗口大小、位置、透明度、无边框等属性,并设置了布局和定时器。在主程序中,创建了一个Popup对象并显示出来。
阅读全文