0

我使用这些说明编译了 Qt 4.8.1:http: //www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/

对于我的系统(Visual Studio 2010,x64)。编译工作正常,一切似乎都很好。虽然编译有很多输出,但它非常快,因此我无法阅读它,所以我想这应该不是问题。

在我成功编译当前项目后,我得到了一个未处理的运行时异常。过了一会儿,我发现它来自QMdiArea::addSubwindow函数,这似乎引发了异常(虽然我无法使用覆盖的通知函数来捕获它)。所以我搜索了一个示例项目,看看它是我的代码还是其他东西。我在这里找到了这个例子:http: //www.codeprogress.com/cpp/libraries/qt/qMdiAreaAddSubWindow.php

它在 32 位模式和 x64 的调试模式下都可以正常工作,但在 QMdiArea::addSubwindow函数中再次出现未处理的异常。有谁知道出了什么问题或有同样的问题?

目前我正在重新编译 Qt 以再次获取调试信息(我事先清理了它)。

但也许有人对我有同样的问题和解决方案。

//更新:代码在这里(与链接中的完全相同)

#include <QApplication>
#include <QMainWindow>
#include <QMdiArea>
#include <QMdiSubWindow>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QMainWindow window;
    window.setFixedSize(800,600);
    window.setWindowTitle(QString::fromUtf8("My QMdiWindow"));
    QMdiArea* area = new QMdiArea();
    area->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

    //Create QMdiSubWindow
    QMdiSubWindow* subWindow = new QMdiSubWindow();
    subWindow->setFixedSize(200,100); 

    //Add subWindow to Main QMdiWindow here
    area->addSubWindow(subWindow);

    window.setCentralWidget(area);
    window.show();


    return app.exec();
}

//Update2:我在这里打开了另一个讨论。

4

1 回答 1

0

好的,我发现了问题。这是 MSVC++ 编译器中的一个错误。安装服务包并重新编译 Qt 会有所帮助。

于 2012-07-17T09:50:41.503 回答