为什么pyQt5换成pyQt6之后就无法弹出窗口了


import sys
from PyQt6.QtWidgets import QWidget, QMessageBox, QApplication

# ##***Message Box***## #
class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        self.setGeometry(300, 100, 600, 600)
        self.setWindowTitle('excise')
        self.show()

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

按道理来说,点击关闭窗口后,输出应该是

img


会弹出一个询问是否关闭的窗口,但是结果是这个窗口会卡一小会,最后直接结束程序。
这个截图是我把pyQt6改成pyQt5后才得到的结果。有没有人帮忙解释一下什么原因,难道是pyQt6的问题吗?

你这个是一个message的提示框。他弹出的时候会阻塞线程。然后关闭他或者对它执行操作,才会执行后续代码

pyqt6中文版官网说明有介绍弹窗的代码,6的代码在
https://maicss.gitbook.io/pyqt-chinese-tutoral/pyqt6/firstprograms
找到 PyQt6 弹窗 即可
有帮助请点一下右上角的采纳,谢谢