Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QWidget删除和清理所用内存时出现问题_Qt_Memory Management_Memory Leaks_Qwidget - Fatal编程技术网

Qt QWidget删除和清理所用内存时出现问题

Qt QWidget删除和清理所用内存时出现问题,qt,memory-management,memory-leaks,qwidget,Qt,Memory Management,Memory Leaks,Qwidget,嗯,我是Qt开发的乞丐,我有一个大问题。我的项目在Linux上使用嵌入式Qt,为此,我关心使用的内存。好的 在我的代码中,我有一个包含QWidgets的堆栈。该堆栈有一个指向我的QWidgets的指针。以前,我只是隐藏我的QWidgets,内存被浪费了,我这样做是为了快速打开我的QWidgets。现在,我正在删除QWidget,并在必要时安装它们 我的问题是,例如,当我运行我的项目时,使用的内存是21%,ok。当我打开第一个菜单时,内存占用了23%。但当我关闭它时,内存会被占用21%。我的问题是

嗯,我是Qt开发的乞丐,我有一个大问题。我的项目在Linux上使用嵌入式Qt,为此,我关心使用的内存。好的

在我的代码中,我有一个包含QWidgets的堆栈。该堆栈有一个指向我的QWidgets的指针。以前,我只是隐藏我的QWidgets,内存被浪费了,我这样做是为了快速打开我的QWidgets。现在,我正在删除QWidget,并在必要时安装它们

我的问题是,例如,当我运行我的项目时,使用的内存是21%,ok。当我打开第一个菜单时,内存占用了23%。但当我关闭它时,内存会被占用21%。我的问题是:另外1%的使用率在哪里?很奇怪,因为如果我再次打开菜单,将只使用1%

似乎Qt在缓存中存储了一些东西,以便在缓存之后显示ui

我看到了一些关于我的问题的话题,人们总是说Qt::WA_DeleteOnClose或deletelater()信号。我尝试过使用这些解决方案,但没有成功


有人能帮我吗?我不明白发生了什么…

对不起,我没有说,但是现在,当我关闭一些QWidget时,我使用以下命令删除它:delete myQWidget;你是说21%-打开菜单->23%-关闭菜单->22%?是的,巴斯特。在这个例子中,我只打开了一个QWidget,对吗?但在我的应用程序中,可以打开第一个菜单的许多子菜单。如果我想打开很多QWidget,然后关闭它们,百分比会达到27%或更高。好吧,我不知道这个。。。但我在这个环节上看到:比我的问题其实不可能是真正的问题。也许我的操作系统正在管理内存,1%可以是一些库或任何我以后可以使用的东西。为此,可能我的操作系统没有完全清除内存。好吧,我会做一些测试,如果要得出结论,我会在这里再次发布。谢谢对不起,我的英语不太好…你是如何跟踪内存使用情况的?