解决方案
CSharp运行matlab库时报错libmwlapack: load error: mkl.dll.的解决方案MWMCR:EvaluateFunction error找不到指定模块
win11离线安装donet3.5的方法
Qt6离线安装方式
QFile无法打开文件明明文件已经存在却无法打开open failed路径或者卷标不正确奇葩问题
关于启用https访问Mrdoc网站cloudflare服务支持http和https同时访问
VS编译工程提示错误error C1083: 无法打开包括文件: “stddef.h”: No such file or directory该文件指向win10 kits安装windows SDK10具体方法
关于Matlab调用Python时出现的错误解决方案Python 命令需要支持的 Cpython 版本。请参阅 <a href="matlab:helpview([docroot'/matlab/helptargets.map’]
Docker构件镜像时 Sending build context to Docker daemon远远超过原镜像大小docker build超出大小原因
QEnum的正确使用方法QMetaEnum::fromType方式总是为空isValid总是为false的解决方案和方法通过键获取值通过值获取键Q_ENUM注册失败
关于静态库的使用的注意事项动态库改静态库的不同static library
windows上Qt编译源码open source building vs2022 qt5.15.17版本编译环境问题 环境配置编译QT依赖安装
Qt5.15.17源码编译的最终版windows下使用VisualStudio编译QtWebEngine组件遇到的问题及解决方案使用VS2019进行编译启用GPU硬件加速显卡OpenGL(最终版)
Qt在MainWindows上悬浮一个QWidget窗体,窗体内有四个按钮,保持QWidget在Mainwin的正中间并设置为透明背景黑色设置无效
windows脚本bat建立目录软链接 系统找不到指定的路径
rdkafka接收数据慢的解决方案发送完了却没有接收完的问题
Qt通过QSS样式将QToolButton下拉弹出菜单的提示按钮由右边让其底部居中显示
使用Qss设置背景图片的一些问题记录不生效,效率低,背景图片不能拉伸
CMakeList管理一个工程引用另外一个工程库该注意
CMakeList设置输出bin和lib目录
CMakeList中实现编译完成后自动拷贝指定文件到指定目录copy
QT工程中文出现乱码的解决方案编译后中文显示不正确显示乱码utf-8编码编译编码
windows下编译Minio cpp客户端编译过程
Minio cpp在使用时无法连接无法下载无法上传等以及直接读取字节流的方法
QT中QHash<QStirng, QSet<SOneStruct>>报错qhash没有重载函数可以转换所有的参数类型错误
Kafka不使用docker-compose不使用zookeeper启动ApacheKafka3.8.0单机运行KRAFT模式
kafka设置服务的单个消息数据缓存大小Message_Max_Bytes服务端设置
QMenu菜单通过名称查找是否已经存在名称的菜单项存在 通过findchild<Qmenu*>(menuName);无法查询到,明明menuName的菜单已经存在,却总是返回nullptr
本文档使用 MrDoc 发布
-
+
首页
QMenu菜单通过名称查找是否已经存在名称的菜单项存在 通过findchild<Qmenu*>(menuName);无法查询到,明明menuName的菜单已经存在,却总是返回nullptr
# 说明 今天在解决方案的时候碰到一个莫名其妙的问题,很奇怪,故要记下来。 auto obj=findchild<Qmenu*>(menuName) 无法查询到,明明menuName的菜单已经存在,却总是返回nullptr。通过测试和调试,最终确定问题原因。本文的问题是在Qt5环境下测试。 # 解决方案 ## 使用addMenu直接添加子菜单或者菜单项 ```cpp QMenu* fileMenu = menuParent->addMenu(tr("fileMenu")); fileMenu->setObjectName("fileMenu"); // 必须设置 objectName // 此时才能通过以下方式找到 QMenu* foundMenu = menuParent->findChild<QMenu*>("fileMenu"); ``` ==通过addMenu或者addAction,并setObjectName时,可以查找到== ## 先New后addMenu添加子菜单 下面方法却无法查找到: ```cpp QMenu * fileMenu = new QMenu("fileMenu"); menuParent->addMenu(fileMenu); fileMenu->setObjectName("fileMenu"); // 必须设置 objectName // 此时才能通过以下方式找到 QMenu* foundMenu = menuParent->findChild<QMenu*>("fileMenu"); ``` ==此时查找不到,这里且返回nullptr== ==最后,通过查询得知,new时,必须显示指定父类才行!== ```cpp QMenu * fileMenu = new QMenu("fileMenu",menuParent);//必须指定父类 //fileMenu->parent(menuParent);//或者 menuParent->addMenu(fileMenu); fileMenu->setObjectName("fileMenu"); // 必须设置 objectName // 此时才能通过以下方式找到 QMenu* foundMenu = menuParent->findChild<QMenu*>("fileMenu"); ``` ==new QMenu时,需显示指定父类!== 至此,findChild能正常查询到是否已存在指定的子项了。 编辑:myhappyandy,于山西太原
虚拟世界
2026年1月28日 23:21
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码