QT显示图片内存占用很大

腻腻腻腻腻腻腻腻 2018-10-23 10:49:29
用Qt编写的图形界面程序,界面使用了很多图片,使用资源文件和setStyleSheet方式显示的,分别在Windows和ARM上运行,在Windows上内存大概80M,能正常启动,但是在ARM上,不能正常启动,报错:QImage: out of memory, returning null image,去掉部分界面,可以启动,但是内存占用也很大,耗时非常久,请问什么原因?
...全文
2050 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kalvenyan 2020-03-27
  • 打赏
  • 举报
回复
引用 3 楼 失散糖 的回复:
图片如果很少很小,放在资源里无所谓;图片总量庞大的话,把它们从可执行文件的资源中拿出去,单独建立一个目录存放图片吧。


是否可以讲的更详细点?

我把qrc文件转成rcc文件运行时加载,可执行文件不到1M,但加载主界面后,进程占用内存超过500M,不知道怎么回事。
xmxlion 2018-11-14
  • 打赏
  • 举报
回复
看你板子内存多少?结合实际应用分析吧
  • 打赏
  • 举报
回复 1
简单说就是:少用半透明,少用不规则形状,动态创建/关闭,简单效果用QSS替换。

详细就是:
资源文件太多的时候考虑一下不要在启动的时候就创建太多界面。每次需要用到界面的时候new出来,不用的时候close掉而不是hide。另外资源文件可以根据实际上要显示的大小用QImage处理一下再set到控件上去。有些简单效果的图片比如渐变色什么的完全可以用QPainter或者QSS去实现。不过这样也有坏处,每次打开一个新界面的时候都需要一定时间。 另外图片如果是PNG格式的耗掉的内存会比JPG格式的大很多,所以少用。 然后就是窗口和控件了,同样的界面,圆角和非圆角都有一定的差距。
xwj 2018-10-26
  • 打赏
  • 举报
回复
优化,和硬件也有一定的关系吧
Little柯南 2018-10-26
  • 打赏
  • 举报
回复
第一,分辨率能显示下来;第二,内存记得释放,不要泄露。
  • 打赏
  • 举报
回复
具体使用了多少图片 都是怎么用的 贴出来大家给你分析
失散糖 2018-10-24
  • 打赏
  • 举报
回复
图片如果很少很小,放在资源里无所谓;图片总量庞大的话,把它们从可执行文件的资源中拿出去,单独建立一个目录存放图片吧。
芒果黑 2018-10-23
  • 打赏
  • 举报
回复
那就一步步排查是哪个界面出的问题
云山大侠 2018-10-23
  • 打赏
  • 举报
回复
Windows上80M,ARM上也差不多的,没有代码,帮不了。考虑内存泄漏吧,比如event中调用了event,函数无限制调用了自身之类的。

16,815

社区成员

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

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