0

それを解決する方法について私にアイデアを与えることができます。

最初のページには、3つの<object>タグが含まれています。

<object type="application/x-qt-plugin"
     classid="TabWidget" name="TabWidget"  id="TabWidget"></object>
<object type="application/x-qt-plugin"
     classid="ColorPicker" name="colorPicker" id="ColorPicker"></object>
<object type="application/x-qt-plugin"
     classid="BaseColorsCircles" name="baseColorsCircles" id="BaseColorsCircles"></object>

これにより、次の関数が3回呼び出されます。

QObject* customWebPage::createPlugin(
   const QString &classid,
   const QUrl &url,
   const QStringList &paramNames,
   const QStringList &paramValues)
{
    if (classid=="ColorPicker"){
        return colorPicker;
    } else if(classid=="BaseColorsCircles"){
        return baseColorsCircles;
    } else if(classid=="TabWidget") {
        return tabs;
    } else if(classid=="ColorBlender") {
        return blender;
    } else
        return 0;
}

すべてが正常に機能します。いくつかのスロットと信号が接続されていて、機能します。問題は、何らかの方法でページをリロードしたときです(更新するか、別のページに移動して戻る)。関数が再度呼び出され、すでに埋め込まれている要素のいずれかを返そうとすると、エラー0xC0000005でクラッシュし、デバッガーは「オペレーティングシステムから信号を受信したため、下位が停止しました。信号名」という警告を表示します。 :SIGSEGV信号の意味:セグメンテーション違反。」

何か案は?ポインタを削除して再初期化してから再度返すことも試みましたが、「削除」命令によってエラーが発生します。ありがとうございました。

4

1 に答える 1

0

どうでも。ブラウザがリダイレクトされるたびにオブジェクトが削除されるため、毎回新しいオブジェクトを作成する必要があります。

于 2012-06-03T13:43:06.567 に答える