pyqt 自定义通知栏,右下角通知栏,仿系统托盘

自定义一个通知框

class MyMessageBox(QMessageBox):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.desktop=QDesktopWidget()
        self.setGeometry(self.desktop.availableGeometry().width()-400,self.desktop.availableGeometry().height()-180,400,150)
    def resizeEvent(self,event):
        self.setFixedSize(400,150)
    def showEvent(self,event):
        super().showEvent(event) 
        self.setFixedSize(400,150)

使用:


    def slot_autoclose_information(self,text,time = 4000):
        infoBox = MyMessageBox(self) ##Message Box that doesn't run
        infoBox.setIcon(QMessageBox.Information)
        infoBox.setText(text)
        infoBox.setWindowTitle("Information")
        infoBox.setStandardButtons(QMessageBox.Ok )
        infoBox.setWindowModality(Qt.NonModal)
        infoBox.setWindowFlags(Qt.Dialog  | Qt.WindowCloseButtonHint)
        if PythonVersion>3.4:
            infoBox.setTextInteractionFlags(Qt.TextSelectableByMouse) #文本可被选中
        if time != -1:
            infoBox.button(QMessageBox.Ok).animateClick(time) #4秒自动关闭
        infoBox.show()


版权声明:本文为qq_33230723原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。