关闭窗口时,由于窗口子部件项目太多,导致界面假死,未响应的问题怎么解决?

fantasy999999999 2014-06-01 02:09:18
我构建了一个窗口,子部件是QGraphicsView,由于在GraphicsScene中创建了大量的QGraphicsItem,导致关闭该窗口时,会随着item数量的增加,而变得有延迟,甚至当item的数量太大时,界面出现假死,未响应的状态,等一会儿之后页面才能自己关闭,我想知道怎么才能解决这个问题?用多线程还是重载析构函数?
...全文
402 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carmack Jiang 2014-06-10
  • 打赏
  • 举报
回复
可以实现多图层QGraphicsScene 不用所有一起刷新
彩阳 2014-06-07
  • 打赏
  • 举报
回复
是这样的,释放内存也得有先后顺序才行。
  • 打赏
  • 举报
回复
引用 2 楼 fantasy999999999 的回复:
[quote=引用 1 楼 dbzhang800 的回复:] 不会是你关闭时,在手动delete一个一个的item吧?这样的话,每次删除,scene都会更新一次,如果item的boundingRect设置再不好的话,每次更新都是整体更新scene,那就更慢了。
没有手动删除哦,就是用的他自己的关闭按钮关闭的。。关闭的函数应该就是库函数里自带的吧。。我没有重载过。。不知道默认的关闭函数是不是你描述的那样一个一个删除后再析构。。[/quote] 建议还是走线程。
fantasy999999999 2014-06-01
  • 打赏
  • 举报
回复
引用 1 楼 dbzhang800 的回复:
不会是你关闭时,在手动delete一个一个的item吧?这样的话,每次删除,scene都会更新一次,如果item的boundingRect设置再不好的话,每次更新都是整体更新scene,那就更慢了。
没有手动删除哦,就是用的他自己的关闭按钮关闭的。。关闭的函数应该就是库函数里自带的吧。。我没有重载过。。不知道默认的关闭函数是不是你描述的那样一个一个删除后再析构。。
dbzhang800 2014-06-01
  • 打赏
  • 举报
回复
不会是你关闭时,在手动delete一个一个的item吧?这样的话,每次删除,scene都会更新一次,如果item的boundingRect设置再不好的话,每次更新都是整体更新scene,那就更慢了。

16,216

社区成员

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

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