Qt

问题记录

报错“该文件包含不能在当前代码页(936)中表示的字符。”
原因 :因为傻逼微软的VS不能识别你的字符编码。
:大骂两句“微软傻逼”。然后把源代码的字符编码弄成有BOM的UTF-8编码。注意一定要有BOM。
然后在第一行加上 #pragma execution_character_set(“utf-8”)

报错“常量中出现换行符”,但是我哪有换行符?
原因:你确实没有换行符,但是由于VS字符编码识别错误,导致你的某个汉字被拆开成几个字节,某个字节又被误识别成了换行符。
:大骂两句“微软傻逼”。然后解决方案同上。

报错“语法错误,缺少)”或者“缺少}”等等。
原因:你确实没有缺少括号符,但是由于VS字符编码识别错误,VS把你的某个汉字的最后一个字节与括号拼接起来,识别成一个汉字。于是括号就没了。
:大骂两句“微软傻逼”。然后解决方案同上。

报错:新增一个文件或者库什么的,编译时报错。
原因:Makefile文件没有更新。
:清除----------重新执行qmake------重新构建 或者 删除编译生成的文件夹,重新运行。

报错:Unknown debugger type "No Engine"。
原因:出现在使用msvc编译器,qt中没有相应的调试器。
Look here

问题:Qt中使用cout,cin在窗口没有输出或者vs嵌入qt时使用cout没有输出 。
原因:…。
:vs 项目-属性-链接器-系统-子系统 -将选项改为控制台
在这里插入图片描述
qt 更改后如有问题,在.pro文件中添加CONFIG += console
在这里插入图片描述
报错:ui中新添加了控件,但cpp文件使用时提示无此对象"。
原因
:右击项目名,点 构建

报错:sql相应头文件提示找不到,。
原因:.pro文件中没有添加sql。

在这里插入图片描述


链接MySQL使用参考

打开MySQL:

#include <QMessageBox>
#include <QSqlDatabase>

bool openMysql(){
	QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
	db.setHostName("localhost");
	db.setDatabaseName("mydata");       //这里输入你的数据库名
	db.setUserName("root");
	db.setPassword("");   //这里输入你的密码
	if (!db.open()) {
		QMessageBox::critical(0, QObject::tr("无法打开数据库"),"无法创建数据库连接! ", QMessageBox::Cancel);
		return false;
	return false
}

报错:QSqlDatabase: QMYSQL driver not loaded
原因一:缺少libmysql.dll
解决:从 X:\MySQL\lib中将 libmysql.dll 文件复制X:\Qt\Qt5.6.1\5.6\mingw49_32\bin中。运行程序
原因二:Qt Creator与MySQL位数不统一
解决:打开MySQL控制台 ,输入show variables like ‘%version_%’;即可查看MySql位数。
  下载mysql-connector-c,在其lib目录中找到文件“libmysql.dll”。然后将这个文件复制到Qt的bin目录下,重启Qt Creator后重新打开工程就可以正确运行了。 总之,必须保证你拿到libmysql.dll这个文件对应的mysql的位数必须与QT的位数相同。
具体原因
  换一个编译器,目测使用msvc2017 32bit的编译器编译会有问题(将相应的libmysql.dll复制到exe生成目录下,附libmysql.dll文件),msvc2017 64bit与mingw没有问题
  还有问题的话,自己编译dll链接库,参考1 参考2 参考3 参考4


调用dll动态链接库 使用参考

从这个地方开始看
在这里插入图片描述

.pro文件说明参考


qt5打包程序(将编译的exe打包成一个可单独执行的exe文件) 具体步骤参考

 1、下载Enigma Virtual Box

 2、编译release版本

 3、使用命令行进入目录下,运行windeployqt obj.exe

 4、…


vs中嵌入qt 使用参考


Qt封装MySQL的简单接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值