python PyQt5 自定义弹窗QMessageBox显示后立即消失了

Posted guangdeshishe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python PyQt5 自定义弹窗QMessageBox显示后立即消失了相关的知识,希望对你有一定的参考价值。

原因

消息框会消失,因为代码中调用的是QMessageBoxshow方法,该方法并没有保留对它的引用,所以一旦函数返回,它就会被垃圾回收

解决办法

调用QMessageBoxexec_()代替show方法显示弹窗

代码示例

box = QMessageBox()
box.setIcon(1)
box.setWindowTitle("温馨提示")
box.setText("运行环境检测ok!")
# 添加按钮,可用中文
yes = box.addButton('确定', QMessageBox.YesRole)
no = box.addButton('取消', QMessageBox.NoRole)
# 设置消息框中内容前面的图标
box.setIcon(1)
box.exec_()
if box.clickedButton() == yes:
    print('确定')
else:
    print('取消')

以上是关于python PyQt5 自定义弹窗QMessageBox显示后立即消失了的主要内容,如果未能解决你的问题,请参考以下文章

python pyqt5 自定义信号和槽

Qt5 / PyQt5 : 带有 QML 前端和 Python 后端的自定义 QML 组件

如何修复自定义消息框以在父 python pyqt5 的新线程中工作

pyqt5——自定义控件

PyQt5 QListWidget自定义项目[重复]

桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!