自定义一个通知框
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()