QT过程遇到的各种问题(小白)

1.
改掉文件名字或者路径
出现不少错误
解决: 重启电脑之后成功解决…

2. 出现如图所示
在这里插入图片描述
解决一:
libmysql.dll 放入到Qt安装路径的的bin文件夹,下图是我本身libmysql.dll存放的路径,需要将其复制到我的安装路径的bin目录下
参考的的路径:D:\Download\Office_Software\QT\install\5.9\mingw53_32\bin
在这里插入图片描述
若上面无法解决,那就是你的QT和你的数据库位数不一致,比如我的QT是32bit 的 ,而 数据库是 64bit 。
我选择了重装mysql

注意:此过程可能会遇到很多麻烦,也可以用下面给的链接先卸载试试
请点击此处

3.
连接MYsql的时候出现,
在这里插入图片描述
解决:请参考博文 我是链接,快点我,后来我发现填写的数据错误也是会出现这个错误的。比如 :db.setPassword(“12345”);
密码缺少一个“6”,也会出现这个错误。

4.
连接数据库成功,但是数据库并没有新创建一个表。

原因:…因为参考的代码中用的是Widget,而我用的是mainWindows.

5.
安装进程(qt.tools.perl)运行期间出现错误: Cannot start: “{0,3010,1603, 5100} msiexec /i D:\Download\Office_Software\QT\install\Tools\Perl52213_32\strawberry-perl-5.22.1.3-32bit.msi /quiet”: Process failed to start: No such file or directory

解决:打开此目录进行手动安装

6.
在使用connect 的时候错误:Error while building/deploying project first (kit: Desktop Qt 5.9.0 MinGW 32bit) When executing step

找了很久解决的办法,大部分都尝试过,都不行,最后重新安装的时候,插件什么的全选了。

7.
如下图,原本是在里面定义sta ,被析构掉,所以调用的窗口一闪而过

报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。
请参考此教程:
在这里插入图片描述

9.
使用选择语句switch语句出现:jump to case label fpermissive的错误提示
解决: 添加 [ ] 即可,如下

 case 6:{
               char *ch;
               QSqlQueryModel *mod = new QSqlQueryModel(this);
               QDate dateEdit=ui->dateEdit->date();
               QString date=dateEdit.toString("yyyy/MM/dd");
               qDebug()<<"日期:"<<date;
               QByteArray ba=date.toLatin1();
               ch=ba.data();
               qDebug()<<"日期:"<<ch;
               mod->setQuery(QString("select * from tune where appkyTime = '%1'").arg(ch));
               qDebug()<<"转换"<<QString("select * from tune where appkyTime ='%1'").arg(ch);
               if (mod->lastError().isValid())
                   qDebug() << mod->lastError();
               ui->tableView->setModel(mod);
            }
                break;`

10.
stay ‘\274’ in program
,其原因是有未标识符,比如中文符号,或者空格。

11.
QT编译运行出现程序异常结束
解决:
调试得出是因为出现了野指针,即在使用指针之前new一下即可

12.
Error: invalid use of non-static member function’
无法使用非静态成员函数C++的非静态成员函数在未实例化之前地址是不确定的,所以要将成员函数的地址指明之后才能进行赋值操作。

提示的错误语句:
connect(ui->InputBtn,QPushButton::clicked,this,FormInput::InBtnC);
解决:
connect(ui->InputBtn,&QPushButton::clicked,this,&FormInput::InBtnC);

13.
Error while building/deploying project XXX(kit: Android for armeabi-v7a (GCC 4.9, Qt 5.4.1))
When executing step "Build Android APK"

解决: 参考博文

14.
Undefined error ‘undefined reference to `_imp___ZN12QApplicationC1ERiPPci’"
刚开始,我以为是因为 .pro没有加上QT += core gui widget之类的
后来突然想到了,qt是32bit的,而我用的编译器的msvc2017 64bit。
所以是因为版本不匹配的原因

15.
The API level set for the APK is less than the minimum required by the kit.
The minimum API level required by the kit is 21.

又是版本问题…
解决:参考博文

16.
The API level set for the APK is less than the minimum required by the kit. The minimum API level re
又是版本问题。。。
解决: 左下角有个搜索栏(或者项目下面有个安卓文件),输入androidManifest.xml就出来了,配置一下
在这里插入图片描述

17.
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"
心累…注意:是项目目录下的文件

在这里插入图片描述

解决:参考博文

18.
The SDK Build Tools revision (23.0.3) is too low for project ‘:app’. Minimum required is 25.0.0
解决 :左下角搜索build.gradle,(或者项目下面有个安卓文件)将里面的2.3.0修改位2.2.3,,,,但是对于高版本的会出现下面的问题
No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
一边太高,一边太低。。。
😔,心累,这几天书都看不下去了,就弄这些配置。
在这里插入图片描述
19. 总算解决了上面的问题了,参考知乎
我主要是 create Template,然后 在项目下的Android 文件打开AndroidManifest.xml文件,看到create Template 之后Target SDK自动生成的是28.0.3 ,然后就去Android SDK Manager里面下载了28.0.3
ok,解决,能够运行在手机上了。
在这里插入图片描述
20.
因为要用到需要使用QWebview, QWebEngineView,所以需要MSVC套件参考博文

22.
error: C2146: syntax error: missing ‘;’ before identifier 'ui’
很奇怪,QT默认就是utf-8,而且在MinGW编译下无错误,换成了MSVC2017 就出现了错误,然后将错误的中文改成english ,就没有错误了。。。。难道是因为我系统语言换成了英文的?(在下东西,等待重启),
解决: 我的解决是在头文件中添加 QMAKE_CXXFLAGS += /utf-8
参考博文
在这里插入图片描述
23.
在msvc下,将右边的影子构建的勾去掉,就提示编译错误,提示msvc配置问题👎 error: msvc-version.conf loaded but QMAKE_MSC_VER isn’t set
在这里插入图片描述
24.
Qt5项目,使用QWebEngineView替换QWebView
参考博文

25.
error: no member named ‘xxx’ in ‘Ui::Echarts’
Qt中在UI文件中新建控件并命名,但在代码中无法识别UI中的控件

解决: 👌 参考博文
确实,在我的项目路径xxx\Database2中多了一个ui_echarts文件,而ui_xxx文件都是保存在xxx\build-Database2-Desktop_Qt_5_14_2_MSVC2017_32bit-Debug中的,把项目路径下多出来的ui_echarts文件删除掉即可
在这里插入图片描述
26.
Qt Error: dependent ‘…’ does not exist. 我情况是在项目里添加一个外部文件,然后移除掉

解决: 在pro文件里,source里去掉依赖项,比如:cJSON.c是提示的依赖项,直接删除掉即可,同时你也可以看看该文件里的其他地方有无依赖项
注:删除掉之后要去掉换行,即不留空,比如下图中,SOURCES下的第一行为空,这样会产生错误,应该不留空

在这里插入图片描述
27.
error: Extra characters after test expression.
在这里插入图片描述
解决:
在RESOURCES += 之后存在回车键换行,改成下图即可
在这里插入图片描述

28.
:155: warning: C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead.
导致窗口没有显示出现

解决参考
我的解决:在提示错误的文件加上语句:
#define _CRT_SECURE_NO_WARNINGS

错误原因:
主要因为C库的函数,很多函数内部是不进行参数检测的(包括越界类的),这些可能会造成内存异常,所以需要改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。

29.
The inferior stopped because it triggered an exception.
Stopped in thread 0 by: Exception at 0x5634122c, code: 0xc0000005: read access violation at: 0xffffffffcdcdcdd1, flags=0x0.

在这里插入图片描述

报错地方:
在这里插入图片描述
视图中的数据格式如下图:
在这里插入图片描述

很显然视图中时间的格式只有 **时:分**  而代码里出多了一个秒,所以触发异常。
删除即可。

30.
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

解决及普及: 参考博文

31. [NSE]KVirtualFolder::InitShellBrowser(5475),GetFileDlgWnd failed
快速双击按钮就会出现此提示

尚未解决且未知 ,有博文说在QMainWindow窗口类中调用可以正常使用, 在QWidget窗口调用则报错;

32.
output.obj👎 error: LNK2019: unresolved external symbol “public: virtual __thiscall OutPut::~OutPut(void)” (??1OutPut@@UAE@XZ) referenced in function “public: virtual void * __thiscall OutPut::`scalar deleting destructor’(unsigned int)” (??_GOutPut@@UAEPAXI@Z)

解决: 缺少析构函数


33.
error: C2143: syntax error: missing ‘;’ before ‘*’
error: C4430: missing type specifier - int assumed. Note: C++ does not support default-int

When executing step "Make"

解决 .h文件和.cpp文件均添加了某个头文件,重复了


34.
error: C2027: use of undefined type 'QSqlQuery’
已经添加了 QT +=sql 以及 相关的头文件且之前可以运行

出现问题缘由:由于使用的是触摸板,可能不太注意,将QSqlQuery批量改写为query 。(再次感谢大哥!!!)

关键:这个操作直接把qsqlquery.h中的SQqlQuery给改成query。而在我认知里在源文件中里面写代码,不会直接修改其他文件。

解决:把qsqlquery.h文件换成之前的文件即可


很感谢前辈们的分享!

未完待…

  • 12
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值