Dema balela! 2022-01-10 21:16 采纳率: 0%
浏览 149

为什么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的问题吗?

  • 写回答

2条回答 默认 最新

  • 关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 1月10日

悬赏问题

  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令