QT中的出现的各种问题报错及解决方式

14 篇文章 0 订阅

1、前言

从学习c++到学习qt,已经有一年有余,自觉学习QT堪堪入门,学习良久,总归发现了一些问题,以及一些解决方式,现在将自己学习遇到的各种问题经过总结发表出来,提高自己的效率,同时帮助一下其他人。

使用平台:QT  Creator  Window10

编译器:MSVC2019   

QT版本:5.15.2

2、各种问题及解决方式(持续更新中)

问题一.报错无法解析的外部命令LNK2019  LNK1120

原因:在.h中的信号与槽函数进行了声明,但是没有在cpp中定义。

解决方式:查看是否在cpp文件中定义槽函数

右键函数选择重构,在cpp中添加定义。

总结:在qt中,如果是普通的函数,只声明不定义,不会出现报错,而对于槽函数声明后,必须定义。

问题二:针对MSVC编译器出现的乱码问题

切换成utf-8   

如果不行。在main.cpp中添加

#include <QTextCodec>

 QTextCodec* codec = QTextCodec::codecForName("GBK");//添加编码格式

需要重新构建编译,不能直接编译,直接编译可能不生效。

对于乱码问题,如果试过各种方法都不成功,电脑重启,然后重新打开项目。

3、总结QT中各种经验

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于您遇到的 "PrematureEndOfDocumentError" 错误,一般是由于 XML 文件格式错误导致的。请确保您的 XML 文件是有效的,并且没有被意外截断。 您可以尝试以下几种方法来解决这个问题: 1. 检查 XML 文件:打开 XML 文件并检查其内容是否完整,确保没有任何缺失或错误的标签。 2. 确保文件已正确加载:在使用 QT 读取文件之前,可以先使用 QFile::exists() 方法检查文件是否存在,然后再使用 QFile::open() 方法打开文件进行读取。 3. 使用 QDomDocument 解析 XML:QT 提供了 QDomDocument 类来解析和操作 XML 文件。您可以使用 QDomDocument::setContent() 方法来加载 XML 文件,并使用 QDomDocument::parseError() 方法来检查是否有解析错误,并获取相关的错误信息。 以下是一个简单的示例代码,演示了如何使用 QT 和 QDomDocument 来读取 XML 文件: ```cpp #include <QFile> #include <QDomDocument> #include <QDebug> int main() { QFile file("your_file.xml"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open file"; return 1; } QDomDocument doc; QString errorMsg; int errorLine, errorColumn; if (!doc.setContent(&file, &errorMsg, &errorLine, &errorColumn)) { qDebug() << "Failed to parse XML:"; qDebug() << "Error message:" << errorMsg; qDebug() << "Error line:" << errorLine; qDebug() << "Error column:" << errorColumn; file.close(); return 1; } // 在这里可以对 QDomDocument 进行操作,读取和修改 XML 数据 file.close(); return 0; } ``` 请注意,这只是一个简单的示例代码,您需要根据您的实际情况进行适当的修改和调整。 希望这些信息对您有所帮助!如有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值