zoukankan      html  css  js  c++  java
  • QT designer QMessageBox不显示并闪退问题

    没有搞清楚原因,仅记录解决过程:

    在数据库实验中,用QT designer创建了一个MainWindow,需要在插入操作捕获到mysql异常后输出提示信息(不是点击按钮事件),直接调用QMessageBox.critical(self, 'Error', str(err)) 程序会闪退,并且没有显示提示。在网上看到一个说法是QT designer创建的MainWindow不是一个QtWidget(我之前是直接在QT designer创建的类里写的代码),而QMessageBox.xxx(self, , )中的self要求是一个QtWidget,因此最好再定义一个类继承QtWidget.QMainWindowUi_MainWindow,这样修改之后问题就解决了

    class Ui_MainWindow(object):... # QT designer生成的代码,不做改动
    
    # 新定义MainWindow类
    class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
        def __init__(self, *args, **kwargs):
            QtWidgets.QMainWindow.__init__(self, *args, **kwargs)
            self.setupUi(self)
            # 以下是自己添加的代码 不贴上来了
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        ui = MainWindow()
        ui.setWindowTitle('学生公寓管理系统')
        ui.show()
        sys.exit(app.exec_())
    

    再遇到QMessageBox.information()时便可成功执行
    参考链接

  • 相关阅读:
    莫比乌斯反演
    CDQ 分治
    二分图的最大匹配、完美匹配和匈牙利算法
    网络流简介
    BSGS && EXBSGS
    fhq-treap
    炸鱼w咕咕咕
    路由器配置——静态路由
    路由器配置——静态路由-回环地址测试
    路由器配置——单臂路由实现VLAN间通信
  • 原文地址:https://www.cnblogs.com/shijiyuanaa/p/12672179.html
Copyright © 2011-2022 走看看