Я скомпилировал 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: я открыл другое обсуждение здесь.