0

Qt 5.0 + mingw を使用してアプリケーションをビルドしていますが、「webkitwidgets」モジュールを使用したいと考えています。.pro ファイルに追加します

QT += webkitwidgets

次に、コードでスレッドを作成し、このスレッドを作成しました:

 QWebPage page;

デバッガーがこの行に到達すると、デバッグが次のエラーで終了します。

「Microsoft Visual C++ ランタイム ライブラリ

このアプリケーションは、異常な方法で終了するようランタイムに要求しました。詳細については、アプリケーションのサポート チームにお問い合わせください。」

そのため、QWebPage 型の変数を宣言することさえできません。なぜこれが起こるのか、それを修正する方法はありますか?

4

1 に答える 1

1

このようなクラッシュが発生した場合は、まず stdout、stderr、およびデバッグ チャネルを監視してから、デバッガで実行します。

ただし、スレッドで QWebPage を作成したと言うように、それは機能しません。Qt (および他のほぼすべての UI ツールキット) では、すべての UI クラスがメイン スレッド、つまり QApplication が存在するスレッドに存在する必要があります。宣言をメイン スレッドに移動すると、動作するはずです。また、スタック上にインスタンスを作成することは、アプリケーションが終了する前にブロックが残されていない場合にのみ正しいことです (通常、これは main() の場合のみです)。それ以外の場合は、ヒープ上に作成する必要があります。

于 2013-07-20T09:31:26.403 に答える