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

【debug】QT 相关问题error汇总 QT运行闪退 QT5升级到QT6注意要点

持续更新,建议关注、收藏、点赞!
总结一下碰到过的所有问题error以及解决方案
如果这个文档未帮助到你,仍有bug未解决,可以在下方评论留言,有偿解决。


  1. qt的UI更新之后构建后发现没有变化
    取消项目中的Shadow build的勾选,作用是取消影子构建,此后构建目录与源码处于同一目录,每次编译更新程序使用的UI文件
  2. error: ‘class QWidget’ has no member named ‘updatePlot’;
    QWidget’ has no member named ‘setInit’;
    一系列的找不到类成员
    观察ui_mainwindow.h可以发现在这里插入图片描述
    版本太低了,目前这些member是QT6的内容
  3. 如何在线更新qt
    点击安装目录里的MaintenanceTool.exe的工具
    左下角设置 添加有效的URL,添加之后可以条件测试一下是否正确
    URL在这里 https://download.qt.io/static/mirrorlist/
    选择China的任意一个

系统是windows_x86的选择清华源的这个链接
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/

e.g.将链接添加在资料档案库中
可以不填用户名+密码
可以选添加哪些组件

#更新哪些,添加哪些
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_qtcreator/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_qtcreator_gui/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_qtcreator_kits_and_debuggers/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_mingw/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt6_673/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt6_673_msvc2022/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt6_673_src_doc_examples/

在这里插入图片描述
点下一步,选择更新组件,选择要更新的部分。

  1. 提示某个组建:No such file or directory
    需要在ro工程中添加 QT += “对应的组件库名称”
    e.g. QT += core
    QT += network
    QT +=serialport

如果加入了仍然报错,可能是因为没安装对应的组件
QT安装目录下找到在这里插入图片描述
在这里插入图片描述
搜索到相应的组件库安装

5.QString 与QByteArray的转换与报错处理
跳转这个文章https://zhuanlan.zhihu.com/p/611600761

6.endl 报错
QT5中qDebug()<<“Error opening file”<<endl;是可行的
QT6中endl应该改为Qt::endl

7.QT6如何打开项目
打开.pro文件 点击configure project即可

8.QT5的项目如何在重新安装的新版QT6 编辑器中正常运行?

  • 重新安装 QT 时如果改变安装目录,可能导致已有的 QT 项目无法编译(无法识别 QT 的类等),需要在安装完毕后建立新的 QT 项目,再将已有的 cpp、ui 等文件复制到新项目所在的目录下。
    注意 新建QT项目不要选择默认的cmake 而是选择qmake 即生成.pro文件的项目

  • 注意QT5升级到QT6一定要安装这个QT5兼容组件
    QT安装目录下找到在这里插入图片描述
    添加组件:
    在这里插入图片描述
    .pro文件中加入QT +=core5compat

9…pro文件看不懂 可以学习下下面两个笔记
https://blog.csdn.net/jolle1/article/details/141122556
https://blog.csdn.net/a8039974/article/details/143052350

10.error:显示某个对象或类不包含某个member 函数或者是变量
“no member named xxx in xxxx”
原因:头文件未引入相应的这个所需要的头文件。
如果是在旧版本的QT上是可以运行的,则需要修改这个旧版的头文件写法,QT6已经废弃掉这种头文件。
比如QT5中的 #include
在QT6中应改成#include <QtNetwork/QTcpSocket>

11.QT运行闪退
原因1:程序里面用了# < QThread> 以及QThread的函数 注释掉即可
原因2:程序中不要用ClassName::function()调用函数,以及不要用ClassName::variation表示变量。
应该直接用this-> …。不然会重新新建一个这个类,导致嵌套过多崩溃

12.QT写入的文件打开之后发现中文是乱码

//不要用这个out.setEncoding(QStringConverter::Utf8 );不管用
out.setEncoding (QStringConverter::System);    //输出编码设为System

13.QtTcpSocket的综合运用——不区分客户端和服务器的用法
这个用法只关注连接、数据发送,不区分它们的身份,也不设置服务器监听。
使用QAbstractSocket Class 而非Tcp server 或者client。
查阅QAbstractSocket Class的文档来编写,点击跳转

14.如何查看报错信息
QT6构建时选择debug模式 而非release,这样一些内部报错都会打印看到;release时是看不到的。

15.qt项目生成.exe可执行文件

设置项目构建配置

打开你的 Qt 项目,在 Qt Creator 左侧的项目导航栏中,点击项目名称以打开项目设置页面。
在 “Build & Run” 选项卡中,确保选择了正确的构建套件(Kit)。这个套件应该与你的目标平台相匹配,例如 Windows、Linux 或 macOS。

生成 Release 版本

在 Qt Creator 的左下角,选择 “构建配置” 下拉菜单,选择 “Release”。
点击 “构建” 按钮(或者使用快捷键 Ctrl+B)来构建项目的 Release 版本。这将生成优化过的可执行文件,不包含调试信息。

找到可执行文件

构建成功后,可执行文件通常位于项目的构建目录中。在 Qt Creator 中,你可以在 “Projects” 选项卡的 “Build directory” 字段中找到构建目录的路径。
对于 Windows 平台,可执行文件的扩展名为 “.exe”。在构建目录中找到这个文件。

部署依赖项(可选)

如果你的项目依赖于特定的 Qt 库或其他动态链接库,你可能需要将这些依赖项与可执行文件一起部署,以便在其他计算机上运行。

从自定义的路径中取出.exe文件放在一个单独的空文件夹中
.exe文件在该文件夹中的release文件夹中
从开始程序中搜索Qt,打开Qt命令行
在这里插入图片描述
切换到存放单独.exe文件的路径中,输入以下指令

cd /d D:\project\data\demo  //切换到存放单独.exe文件的路径中
windeployqt demo.exe        //你的.exe文件名

之后点击该文件夹中的exe文件即可执行

  1. qt creator不能调试或运行exe,starting executable failed:no such file or directory
  • 出现这种情况一般是修改了项目目录或项目名称,把名字改回来就可以了。
  • 点 项目 -> run -> 运行,把运行配置改成对应的exe文件即可。
    在这里插入图片描述
  • 或者是 删掉末尾为user的文件,重新配置项目

17.// 设置发送缓冲区大小
socket->setSocketOption(QAbstractSocket::SendBufferSizeSocketOption, 1024 * 1024); // 1MB 发送缓冲区

18.ScrollArea不显示滚动条
在这里插入图片描述
确认expending 以及 base_width base_heitght不为0;整体结构是自带一个widget作为内容容器的。
已经超出了Scroll Area部件的大小之后仍然不显示滚动条?
将上面代码中标黄色语句的改成:self.scrollArea.setWidget(this.widget)
Scroll Area部件跟窗口一样,本身也有布局,需要将其布局打开才行。通过鼠标右键单击Scroll Area部件,选择布局设置,选择水平Lay out,。


http://www.mrgr.cn/news/75069.html

相关文章:

  • 去地面算法——depth_clustering算法调试(1)
  • 2023年MathorCup数学建模B题城市轨道交通列车时刻表优化问题解题全过程文档加程序
  • 51c嵌入式~单片机合集2
  • Java | Leetcode Java题解之第560题和为K的子数组
  • 【6.2】位运算-解重复的DNA序列
  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • QSerialPort高频接收数据不完整的问题
  • 【MySQL 保姆级教学】事务的隔离级别(详细)--下(13)
  • 赛力斯业绩飙升,董事长为何说“穷怕了”?
  • vue2/vue3中使用的富文本编辑器vue-quill
  • Unity学习---IL2CPP打包时可能遇到的问题
  • 麦克风品牌排行榜前十名,目前音质最好的麦克风推荐,选购分享
  • AI预测体彩排3采取888=3策略+和值012路+胆码+通杀1码测试11月14日升级新模型预测第134弹
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)
  • linux虚拟机无法使用yum在线拉取
  • SwiftUI 高级开发教程系列 - 第 4 章:动画的高级应用与性能优化
  • DVWA靶场通关——SQL Injection篇
  • 光伏行业内卷到什么程度了?
  • 完美解决CSV长整数显示问题/双击生效问题
  • 热门语言对比
  • WIFI 开关
  • CHI 协议层 Retry —— CHI(8)
  • Flutter网络通信-封装Dio
  • CCF认证-202403-02 | 相似度计算
  • 刷算法题(C++)
  • 机器学习:XGBoost模型(升级版)——高效且强大的树形模型