这种可能性不大,除非你是自己编译的Qt SDK。
更改后的代码你有测试过吗?
此外,我想提示一点改程序的潜在问题,
你用for循环去添加MyWidget,当图片数量大了就发生了问题,为什么?
因为MyWidget里边有repaint函数,repaint函数在event queue里边,当你view->show() (main.cpp)显示时候,就会大量调用repaint方法,而你的Qpixmap又不能释放掉,因为释放了,你就什么也显示不了了。所以占用大量的CPU和内存。
首先从你的软件设计上我觉得有待斟酌。
通常来说,都是显示一个大图,不用了,删除资源,没有保留那些狂耗内存资源的。
要么就是好像collection view,列出几行几列的图片到屏幕上,用户操作后,销毁上次载入到屏幕的图片,然后再载入新的几行几列的图片,这样内存就不会无端消耗了。
你的内存释放(QPixmap)最后都是在程序关闭后,而不是程序不需要的时候。