Qt:MainWindow-> show()在通话时崩溃程序

时间:2013-03-01 15:05:19

标签: c++ qt

我在c ++中使用Qt一直在研究这个程序,到目前为止一直很好。但是,然后我需要将此程序移动到另一台机器。我有subversion,所以我提交了项目文件夹中的每个文件并在新机器上检查了它。在跳过一些环节以使其成功构建和运行之后,我收到了这个错误:

 ASSERT: "dst.depth() == 32" in file qgl.cpp,.
 invalid parameter passed to c runtime function qt

我尝试单步执行该程序以找到它崩溃的点,并发现它是在所有内容初始化之后,并且为继承QMainWindow类的类调用了show()。 c-> showView()行调用QMianWindow-> show()。

 ----------main.cpp------------
 #include <QApplication>

 #include "ModelI.h"
 #include "ControllerI.h"
 #include "Model.h"
 #include "Controller.h"


 int main(int argc, char *argv[])
 {
      QApplication a(argc, argv);
      ModelI *m = new Model();
      ControllerI *c = new Controller(m);
      c->showView();                         <- ERROR HERE
      return a.exec();
 }

问题的一个令人困惑的部分是,当调用show()时,程序在我的机器上运行得非常好。我不知道两台机器之间可能有什么不同,使程序的行为如此不同。两者都使用相同版本的Qt(SDK 2010.05)。两者都在用Eclipse开发。我能找到的唯一区别是我的编译器是MinGW 4.5.0而另一台机器是MinGW 4.5.2。

编辑1:

这就是Controller :: showView()的样子。

 void Controller::showView()
 {
     mView->show();
 }

这就是mView的初始化方式。

 mView = new View(mModel, this);

0 个答案:

没有答案