【Qt】关于QMenuBar创建方式的讨论

关于QMenuBar创建方式的讨论

如果在创建项目的时候,没有勾选自动生成ui文件,此时上述代码是正确的;而如果勾选了自动生成ui文件,上述代码则会出现内存泄漏的问题。因为Qt已经生成了一个QMenuBar了

由于之前程序已经自己创建好了一个QMenuBar,当设置新的QMenuBar的时候,就会导致就的QMenuBar脱离了Qt的对象树,也就意味着后续无法对这个对象进行释放了。

关于上述程序,如果窗口关闭,对象树释放,此时进程也就结束了,而进程结束后,自然所有的内存都会回收给系统,上述内存泄漏所造成的影响也不是特别大;而如果这样的程序出现在一个多窗口的程序中,如果涉及到窗口的频繁调整切换(窗口的频繁创建与销毁),上述内存泄漏就会更加严重一些。

关于这个问题,现阶段计算机内存比较充裕,上述内存泄漏问题也不会特别严重。

如果是服务器程序相比于客户端程序,就对内存泄漏问题比较严重:

(1)服务器需要处理很多请求,每个请求泄漏一点,请求积累下来就会泄漏很多。

(2)服务器需要7*24小时运行。

当然,即使如此,还是希望代码更加规范一些。

使用这样的方式,相当于进行了俩次操作:

  1. 如果QMenuBar已经存在,直接获取并返回
  2. 如果QMenuBar不存在,就先创建一个新的,再返回。

如果是获取到已经存在的QmenuBar,这里的设置就是自己替换自己。

相关推荐
木子.李34732 分钟前
排序算法总结(C++)
c++·算法·排序算法
风逸hhh36 分钟前
python打卡day46@浙大疏锦行
开发语言·python
火兮明兮1 小时前
Python训练第四十三天
开发语言·python
freyazzr2 小时前
C++八股 | Day2 | atom/函数指针/指针函数/struct、Class/静态局部变量、局部变量、全局变量/强制类型转换
c++
ascarl20102 小时前
准确--k8s cgroup问题排查
java·开发语言
fpcc3 小时前
跟我学c++中级篇——理解类型推导和C++不同版本的支持
开发语言·c++
莱茵菜苗3 小时前
Python打卡训练营day46——2025.06.06
开发语言·python
爱学习的小道长3 小时前
Python 构建法律DeepSeek RAG
开发语言·python
luojiaao3 小时前
【Python工具开发】k3q_arxml 简单但是非常好用的arxml编辑器,可以称为arxml杀手包
开发语言·python·编辑器
终焉代码3 小时前
STL解析——list的使用
开发语言·c++