9

QApplication::notify 関数をどこで再実装する必要がありますか? つまり、どのクラスですか?私自身のクラスの1つまたはQtのクラスの一部をサブクラス化し、そこでそれを行いますか? サーバーからファイルをダウンロードしているときに次のエラーが発生するため、これが必要です (小さなファイルは正常にダウンロードされますが、大きなファイルはこのメッセージを引き起こします)。

Qt は、イベント ハンドラーからスローされた例外をキャッチしました。Qt では、イベント ハンドラーからの例外のスローはサポートされていません。QApplication::notify() を再実装し、そこですべての例外をキャッチする必要があります。

4

2 に答える 2

11

サブクラスQApplication化し、notify(..)メソッドで次のようにします。

try {
    return QApplication::notify( receiver, event );
} catch ( std::exception& e ) {
    showAngryDialog( e );
    return false;
}

次に、代わりにメイン関数で使用しますQApplication

于 2012-12-14T12:26:32.423 に答える