当前位置: 首页 > article >正文

【Qt】常见问题

1.存在未解析的标识符

将build文件夹删掉重新编译。

2.左侧项目目录栏无法删除已添加项目

打开目标项目上一级的pro文件,将目标文件名字注释或者删除掉,最后保存,qt就会自动更新,将该项目隐藏掉。

3.在qt creator下添加槽函数出现no documents matching “ui_xxx.h”,不能添加信号和槽

img
文件名大小写不一致
img

4.未找到xxx.obj

img
出现该问题原因是调用了一个只声明没实现的函数(头文件声明了,源文件没实现)

5.指针值为0xfeeefeee

OXFeeeFeee指针的含义_0xfeeefeee-CSDN博客

此值的含义为: 此指针指向的位置已经被释放了, 但释放后,又错误的重新调用了这个无效指针。

0xfeeefeee的含义为: 指针指向的空间已经被DELETE释放掉,但程序在未给该指针重新赋值前,又错误的调用了这个无效的指针

内存中常见异常值的解释(0xcccccccc 0xcdcdcdcd 0xfeeefeee等)_0xfeeefeee是什么-CSDN博客

6.发送一次信号,槽函数多次触发

QT发射一次信号,槽函数执行了多次的背后思考-CSDN博客

槽函数会被执行多次的问题原因及解决方法_为什么槽函数不能显示多次定义-CSDN博客

1 √Qt::UniqueConnection

目前使用的解决方法是,再绑定信号槽的时候,connect添加第五个参数Qt::UniqueConnection(表示如果该信号以前没连接过,则连接它,返回true,如果以前连接过,则不再连接,返回false)

注意**:该参数对匿名函数形式的连接****无效**

        connect(dynamic_cast<DeviceMainView*>(w),&DeviceMainView::sigShowDeviceToLeft,this,[=](){
            emit sigShowDevicesToLeft();
            SCDebug<<"fff3";
        },Qt::UniqueConnection);

2.disconnect

1 × 在每次connert前先disconnect一次(还是会多次触发)

//1 √ 参数限制 防止槽函数被多次触发
//connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction,Qt::UniqueConnection);

//2 × disconnect 先断开连接 再重新连接 ?还是会多次触发
        
QMetaObject::Connection connectHandler = connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction);
disconnect(connectHandler);
connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction);
        

2 ?每次绑定的环境失效前,执行disconnect()函数

每次绑定的环境失效前(如在一个对话框中被绑定,该对话框被关闭则视为失效),执行disconnect()函数,将该绑定解除。

思考:

对话框被关闭,意味着将会调用void Widget::closeEvent(QCloseEvent *event)函数,那么可以在此函数中判断,关闭窗口时,发送信号给connect所在类,然后执行disconnect函数,解除连接关系。

7.debug模式下,运行点击程序会跳到不相干的地方,一直停在此处

原因:历史断点(之前打的断点)问题

解决:删掉所有历史断点就可以了

8 debug 运行 提示ui_xxx.h 不存在

前提删过相关文件 以为重构编译可以重新生成 自定义了路径

img
解决:整个文件夹删掉 重构(之前只清空了文件夹,文件夹没有删掉)

9 fatal error LNK1201:写入程序数据库“***.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够…

重新构建时,程序正在运行,关掉程序

10 ? Cannot write file .pri: 另一个程序正在使用此文件,进程无法访问。【 右键添加已存在文件】

img

11 q

【填坑】解决“要继续此操作,至少需要一个有效且已启用的储存库”问题_要继续此操作,至少需要一个有效且已启用的储存库-CSDN博客
维护QT添加或移除组件_此操作至少需要一个处于启用状态的有效资料档案库-CSDN博客

12 类名变紫色 应该为红色 相关报错

img
原因:前两行宏中间有空格导致
在这里插入图片描述

13 【Debug】LINK : fatal error LNK1104: 无法打开文件“XXX.dll”

重新debug一次就好了

14 【构建】dependent “*.ui” does not exist.

qt构建错误: dependent “*.h” does not exist. - 我来乔23 - 博客园 (cnblogs.com)
在这里插入图片描述

原因:之前添加了该文件后又删除,可能项目文件没有更新,查看所在pro文件后发现没有删除该文件的声明
尝试了重新清除、qmake、构建 还是不可以
解决:pro文件相关代码删除后再编译就可以了。

15 无法解析的外部符号

在这里插入图片描述
原因
所在pro里没有添加对应的依赖库
解决
加上对应的依赖库
在这里插入图片描述

16 【warning】allocating an unneeded temporary container [clazy-container-anti-pattern] 分配不需要的临时容器

在这里插入图片描述
[How to fix foreach warning: allocating an unneeded temporary container -Wclazy-container-anti-pattern
原因

解决


http://www.kler.cn/a/233398.html

相关文章:

  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • 2024-11-13 学习人工智能的Day26 sklearn(2)
  • OpenGL ES 共享上下文实现多线程渲染
  • 【最新版】Stable Diffusion4.9(AI绘画)下载及安装教程(附软件安装包)!
  • Spring Boot 1.x 版本可以集成 Spring Cloud Sleuth
  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • 2.7日学习打卡----初学RabbitMQ(二)
  • springboot173疫苗发布和接种预约系统
  • 3 scala集合-Set
  • 面试经典150题 -- 栈(总结)
  • vue3+vite+ts 配置commit强制码提交规范配置 commitlint
  • 力扣刷题之旅:进阶篇(三)
  • Java异常的处理 try-catch-finally
  • Python 字符串模块
  • “OLED屏幕,色彩绚丽,画面清晰,让每一帧都生动无比。“#IIC协议【下】
  • JavaWeb02-MyBatis
  • QCoro: Qt C++ 20 协程库介绍
  • 基于图像掩膜和深度学习的花生豆分拣(附源码)
  • 【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)
  • uni-app x,一个纯原生的Android App开发工具
  • 【力扣】复写零,栈 + 双指针法
  • 张楠辞任抖音集团CEO;东方甄选将开服饰号;小红书新增“附近”一级入口;华为分红770亿元
  • Vue3中路由配置Catch all routes (“*“) must .....问题
  • 通过Harbor构建docker私服仓库
  • 前端使用pdf.js进行pdf文件预览的第二种方式:Viewer.html
  • Quartus工程的qsf配置约束文件介绍