【发布时间】:2016-01-29 17:29:48
【问题描述】:
我有一个自定义的QWebView 声明为:
class browserControl : public QWebView {
Q_OBJECT
public:
explicit browserControl(QWidget *parent = 0);
~browserControl();
// ....
}
它是MainWindow 类的成员(与Qt 在GUI 应用程序上生成的相同)我在按下按钮时调用show()。所以它在一个新窗口中打开网络浏览器但是当我关闭主窗口我们的网络浏览器时,我得到了一堆内存泄漏(它可能与每次运行不同,取决于打开的页面,我猜)喜欢(如果我关闭主窗口然后关闭浏览器)
泄漏:24 个缓存资源
泄漏:231 WebCoreNode
或者如果我关闭浏览器然后是主窗口:
泄漏:1 个 XMLHttpRequest
泄漏:49 CachedResource
泄漏:2528 WebCoreNode
我该如何解决这个问题?
编辑
询问的构造函数代码:
browserControl::browserControl(QWidget *parent)
: QWebView(parent)
{
}
browserControl::~browserControl()
{
}
【问题讨论】:
-
你能发布构造函数代码吗?以及如何构造这个对象?
-
@MehrdadMomeny:查看编辑。我把构造函数代码。该对象是主窗口类的成员(由 Qt 在 GUI 应用程序中生成的)。我没有设置父母。也许这就是原因?
-
如果你没有设置父级,也没有手动删除小部件,你希望它如何被删除?
-
@MehrdadMomeny:当我将父级设置为主窗口时,浏览器会嵌入到主窗口的窗体中,位于同一窗体的选项卡控件之上。我应该使用哪个父级或如何手动删除它?
-
检查我的答案中的第二个选项,您不需要设置父项。
标签: c++ windows qt memory-leaks qwebview