0

可以给我一个如何解决它的想法。

第一页包含三个 <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>

这会导致以下函数被调用三次:

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 回答