• 5782阅读
  • 2回复

一个奇怪的问题,从 dialog按按钮调用mainwindow的问题 [复制链接]

上一主题 下一主题
离线nbdxkfq
 

只看楼主 正序阅读 楼主  发表于: 2010-11-07
— 本帖被 XChinux 执行加亮操作(2010-11-10) —
有这样3段代码


    def pushButton_login_clicked(self):
        qMainWindow = QtGui.QMainWindow()
        C_MainWindow(qMainWindow)
        qMainWindow.show()
这样没有反应
    def pushButton_login_clicked(self):
        qMainWindow = QtGui.QMainWindow()
        C_MainWindow(qMainWindow)
        qMainWindow.show()
        qMainWindow.exec_()
这样出现正常窗口,但是报错
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    qMainWindow = QtGui.QMainWindow()
    C_MainWindow(qMainWindow)
    qMainWindow.show()
    app.exec_()
这样运行也是正常的


请问怎么回事呀,在之前的 测试程序里面,按照第一段方法写是可以成功的,请大家帮忙,需要更多的 代码我可以提供,谢谢大家
离线nbdxkfq

只看该作者 2楼 发表于: 2010-11-08
谢谢,问题解决了,我发现是如果在我新调用的mainwindow里面如果不放connect的话,就不会出现mainwindow,我估计是因为闪太快了,完全看不到,如果有一个connect的话,就会停下来等待connect的相应,就会出现界面,这样说对么?谢谢啊

第2个错误是最后一句exec_()出错了,所以不正常退出相应域,没有正常的析构掉mainwindow这个界面,所以界面就出现了,如果exec_()换成一个可以正常运行的语句,比如print的话,可能又再次回看不到界面了,

恩,经过测试,的确是这样的,谢谢
离线dbzhang800

只看该作者 1楼 发表于: 2010-11-07
第一个代码不会没响应吧?尽管存在时间非常短(show完就出了作用域,被python垃圾回收了),毕竟还是show了一下窗口

第二个显然出错,exec_ 不是每个人都有的,再说了就是有(比如QDialog),你也不用 show 和 exec 一块调 啊

第三个,正常用法
快速回复
限100 字节
 
上一个 下一个