QGraphicsView刷新多次后内存溢出问题

浅笑铅华 2018-03-21 09:38:04
在mainwindows里创了个myview(QGraphicsView)然后每0.5s调用update()刷新一次,基本上刷新100多次就内存溢出了,不知道为什么(好像是内存溢出,因为myview一下就什么都不显示了,但没报错)。
void Mymainwindow::paintEvent(QPaintEvent *)
{
QImage image;
image = QImage(800, 600, QImage::Format_RGB32);//画布的初始化大小设为600*500,使用32位颜色
myview->setCacheMode(myview->CacheBackground);
QColor backColor = qRgb(255, 255, 255); //画布初始化背景色使用白色
image.fill(backColor);//对画布进行填充
QPainter painter(&image);
painter.setRenderHint(QPainter::Antialiasing, true);//设置反锯齿模式,好看一点

my::data data = boost::shared_ptr<std::vector<my::datamember>>(new std::vector<my::datamember>);
ServiceData.copydatato(data);//获取数据,数据肯定没问题
painter.setPen(QColor(255, 0, 0));
for (int x = 0; x <data->size(); x++)
{
painter.drawPoint((*data)[x].x* 10 + 400, (*data)[x].y * 10 + 300);
}

painter.drawLine(300, 300, 500, 300);
painter.drawLine(400, 200, 400, 400);
QGraphicsScene *scene = new QGraphicsScene;
scene->addPixmap(QPixmap::fromImage(image));
myview->setScene(scene);
myview->show();
}
...全文
1184 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
最明显的问题是 QGraphicsScene *scene = new QGraphicsScene; scene->addPixmap(QPixmap::fromImage(image)); 这里反复创建场景,不建议这样做,这样做效率很低。应该在类成员中保留一个场景指针,每次直接清空。 若坚持这样,建议在myview->setScene(scene);之前,先把老的scene->deleteLater() ------------------- 此外,就是那个shared_ptr部分,由于不清楚外围的构造,暂时不能确定内存泄漏。
萧洛 2018-03-21
  • 打赏
  • 举报
回复
new两次却没有delete,内存不泄漏才怪。 如果是要重复利用的内存,可以在构造函数中申请一次就够了。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 【FAST FWR310 无线路由更新程序】是一个专门为FAST FWR310型号无线路由设备设计的固件升级方案,其主要目的在于改善设备的工作表现、纠正已知的系统缺陷或引入全新的操作特性。对无线路由器进行固件更新,实质上是指替换或升级其核心操作系统(即固件),从而使其运行状态得到进一步优化。 在无线路由器的持续使用阶段,用户有时会遭遇若干操作难题,例如网络连接的频繁中断、数据传输速率不高、无线信号覆盖范围有限等情况。针对此类挑战,通过安装新的固件(即刷机包),能够有效应对上述问题,因为新固件或许已经针对这些普遍存在的问题进行了优化处理。不仅如此,固件升级还能开启一些隐藏的功能选项,或者兼容第三方固件,例如OpenWRT,从而让用户能够进行更深入的系统自定义配置及管理。 FWR310 V5.0升级软件20160301是该刷机包的明确版本标识,显示出这是针对FAST FWR310路由器推出的第五代固件,并且发布日期为2016年3月1日。此版本的更新内容可能涵盖以下几个方面: 1. 运行效能的调优:借助于对路由器处理流程与内存分配的改善,能够加快数据交换速率,减少响应时间,从而全面提升网络的工作效能。 2. 安全防护的强化:更新内容中可能融入了对新兴网络安全风险的防御机制,用以保障用户的资料安全。 3. 互操作性的扩展:可能增强了与更多设备及协议的适配能力,比如最新的无线通信标准或设备连接模式。 4. 运行稳定性的提升:修复了可能引发路由器系统崩溃或意外重启的已知故障,延长了设备的稳定运行周期。 5. 新特性集成:或许增添了提升用户体验的功能,例如远程操作控制、家长监管功能、服务质...
内容概要:本文围绕基于混沌系统与DNA编码的彩色图像加密解密体系展开研究,旨在解决传统图像加密算法密钥空间小、抗干扰能力弱等问题。通过结合混沌系统的伪随机性与DNA编码的高维组合特性,构建了多层级、高复杂度的加密框架,实现了对彩色图像RGB三通道的混淆与扩散操作。研究重点包括加密算法的设计与实现、密钥敏感性分析以及抗噪声和抗裁剪性能的系统性测试。实验结果表明,该算法在面对高斯噪声、椒盐噪声及不同面积、位置的图像裁剪攻击时,仍能较好地恢复图像主体结构与核心信息,展现出优良的鲁棒性和实用性。文章还总结了当前研究的不足,并对未来优化方向进行了展望。; 适合人群:具备一定信息安全、图像处理或密码学基础知识的科研人员、研究生及工程技术人员。; 使用场景及目标:①用于高安全性需求下的图像传输与存储场景,如军事通信、医疗影像保护等;②为复合型图像加密技术的研究提供理论支持与实验依据,推动加密算法向高鲁棒性、强抗攻击能力方向发展; 阅读建议:建议读者结合文中提供的理论基础与实验分析,深入理解混沌与DNA编码的融合机制,并可通过复现实验进一步掌握算法细节与性能边界,重点关注抗干扰测试部分以评估其在实际应用中的可靠性。

21,502

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧