![](https://img-blog.csdnimg.cn/d798965c755a43d185e48dd48135194e.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT实战开发
Qt桌面软件、后端开发实战经验
Gabriel.Tian
高级BSP工程师
熟悉Linux FreeRTOS嵌入式操作系统,具有高通 MTK 紫光展锐等多款平台开发经验
展开
-
Qt:Error:No rule to make target ‘ .. /../??.png‘,needed by ‘debug/qrc_resource.cpp‘
编译环境:win10(64bit) Qt5.12.2 Qt Creator 4.8.6写项目过程中,删除了一些后期没有用的资源文件中的图片,再次运行就出现了以上的错误解决方案:1.将.pro文件中的RESOURCES += 以及后面的.qrc 文件删除并CTRL+S2.删除本地项目文件夹中的.qrc 文件和.user文件以及debug产生的文件夹3.将界面文件的样式表中用到错误信息...原创 2019-04-19 15:27:50 · 18310 阅读 · 20 评论 -
Qt:error: undefined reference to `gets_s(char*, int)‘
因为目前GCC中还没有完全实现此标准, 因此 gets_s() 函数尚未包含在目前的GNU 工具链中。Clang里也暂时没有增加对 gets_s 的支持。所以需要在程序中自己实现一个gets_s()函数char *gets_s(char *str, int num){ if (fgets(str,num, stdin) != 0) { size_t len = strlen(str); if (len > 0 && str[len.原创 2020-09-22 17:01:14 · 2232 阅读 · 4 评论 -
ws2_32网络库在VS及Qt中的导入方法
VS:头文件部分添加#pragma comment(lib, "ws2_32.lib")Qt:.pro文件中添加LIBS += -lWs2_32原创 2020-09-22 16:55:22 · 1500 阅读 · 0 评论 -
Qt5.14.1: error: undefined reference to `WinMain@16‘
.pro文件中添加win32:QMAKE_LFLAGS += -shared原创 2020-09-22 16:52:28 · 261 阅读 · 0 评论 -
Qt5.14.1: error: unknown type name ‘QCoreApplication‘
帮助 —> 关于插件 —> C++ —> 取消勾选ClangCodeModel原创 2020-09-22 16:13:23 · 1588 阅读 · 0 评论 -
解决windows下Qt项目构建/qmake时出错
解决方案:方案一:在“工具” -> "选项"下查看构建套件及编译器是否正确方案二:在“项目” -> "构建设置"中查看shandow build:即影子创建的构建目录是否正确,目录不存在时为红字,需修改(网上有些说的取消勾选影子创建,没有用)。如下图显示为正常:......原创 2019-11-13 15:26:07 · 6132 阅读 · 0 评论 -
Qt:warning: control reaches end of non-void function
编译环境:Qt5.12.2先看一下C++11中Lambda表达式的用法(节选自百度百科):ISO C++ 11 标准的一大亮点是引入Lambda表达式。基本语法如下:[capture list] (parameter list) -> return type { function body }其中除了“[ ]”(其中捕获列表可以为空)和“复合语句”(相当于具名函数定义的函数体),......原创 2019-04-20 16:23:43 · 4710 阅读 · 0 评论 -
Qt:完美解决纯C++项目手写界面时添加头文件错误—— fatal error: ‘QtGui‘ file not found
最近在Ubuntu18.04下使用Qt5.11.2编写纯C++ 的多人聊天室项目,实现之后又需要在客户端另加一界面,但是在.h文件中添加 #include<QtGui> 时,出现了 fatal error: 'QtGui' file not found 的错误。解决方案:首先查看项目的.pro文件,除了文件下半部分的SOURCES += /以及HEADERS += /的代码之外,...原创 2019-08-12 15:04:38 · 2732 阅读 · 0 评论 -
Qt 类型转换:void -> QString -> string -> char*
编译环境:Ubuntu 18.04,Qt5.11.2在对一个TextEdit控件中的文本进行操作时,需要将控件te_input中的文本转为char*类型的数据并传给buf需添加头文件:#include <QTextCodec>函数体中添加://method of void -> char* QTextCodec::setCodecForLocale(Q...原创 2019-08-22 17:28:08 · 1901 阅读 · 0 评论 -
Qt:解决 warning: no previous extern declaration for non-static variable ‘XXX‘
编译环境:Ubuntu18.04 ,Qt5.11.2该警告意为:在此之前没有对于非静态变量‘XXX’的外部声明警告原因:之前在定义一个全局变量的时候,直接在window.cpp中进行了int flag;的定义,之后在main.c中需要用这个变量的时候,直接加了extern int flag;,编译后产生上述警告。解决方法:如果只在一个文件中使用该全局变量:在window.h中进行静态...原创 2019-08-26 13:06:58 · 9355 阅读 · 0 评论 -
Qt:Extra characters after test expression.
编译环境:Ubuntu18.04 Qt5.11.2.pro文件出现错误,提示为Extra characters after test expression.出错原因:在RESOURCES += 之后存在回车键换行解决方案:改写为:...原创 2019-09-23 13:11:47 · 12927 阅读 · 2 评论 -
Qt:基于QTcpSocket,QTcpServer编写的多人网络聊天室(TCP/IP协议) —— 服务器源码
编译环境:Ubuntu18.04,Qt5.11.2QTcpSockServer.proTEMPLATE = appCONFIG += console c++11CONFIG += console precompile_headerCONFIG -= app_bundleCONFIG += qtQT += core gui network sqlgreaterThan(QT_MAJO...原创 2019-10-02 16:31:09 · 1874 阅读 · 0 评论 -
Qt:基于TCP/IP协议的服务器客户端的实现
在服务器和客户端的.pro文件中均添加:QT += network客户端需添加头文件#include <QTcpSocket>#include <QHostAddress>#include <QMessageBox>服务器需添加头文件:#include <QTcpServer>#include <QTcpSoc...原创 2019-04-20 01:53:04 · 1208 阅读 · 0 评论 -
Qt5:读写配置文件
setting.h中public: bool writeInit(QString group, QString key, QString value);//写入路径存储 bool readInit(QString group, QString key, QString &value);//读取存储路径private:QString m_initPath;settin...原创 2019-04-20 00:20:34 · 1868 阅读 · 0 评论 -
Qt:实现定时关机功能
编译环境:win10(64bit),Qt5.12.2,Qt Creator 4.8.6在Spin Box 中设置剩余关机的时间,再选择Check Box开启/关闭定时关机。通过Check Box转到槽函数实现具体定时关机功能void setting::on_cb_timed_shutdown_clicked(bool checked){ if(checked) { ...原创 2019-04-21 16:30:11 · 1106 阅读 · 0 评论 -
Qt:通过QLabel控件来显示实时日期时间
头文件需添加:#include <QTimer>构造函数中://日期/时间显示QTimer *timer = new QTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));timer->start(1000);定义成员函数timerUpdate()实现用户界面显示时间:vo...原创 2019-04-21 16:41:47 · 8264 阅读 · 6 评论 -
Qt:组合键的实现
方案:参考Qt帮助文档,重写KeyPressEvent().在qnamespace.h中,枚举了KeyBoardModifier enum KeyboardModifier { NoModifier = 0x00000000, ShiftModifier = 0x02000000, ControlModif...原创 2019-04-21 17:00:45 · 3154 阅读 · 0 评论 -
qt:qt5.12警告消除大法之 warning: zero as null pointer constant
C语言中,使用NULL表示空指针NULL实际上是一个void *的指针,然后把void *指针赋值给int *指针的时候,隐式转换成相应的类型例如以下代码:int *i = NULL;编译器提供的头文件如以下定义NULL::#define NULL (void *(0))C++中,使用0表示空指针C++中不能将void *类型的指针隐式转换成其他指针类型,为了解决空指针,C++中...原创 2019-04-19 13:24:40 · 9189 阅读 · 0 评论 -
QT5.12 无法添加槽函数 查找/添加槽错误
版本说明:Win10(64bit)、Qt5.12.2、Qt Creator4.8.6无法添加槽函数,导致信号发出后槽函数接收不到信号原因1:未在类定义中添加Q_OBJECT原因2:信号或槽指向的对象未实例化原因3: 多处包含相同的"ui_XXX.h"头文件查找/添加槽错误在UI文件中右键转到槽发生错误,弹窗提示如下:查找或添加槽错误The class containing "UI:...原创 2019-04-19 13:49:13 · 11550 阅读 · 5 评论 -
Qt:程序异常结束,并crashed
开发环境:win10(64bit),Qt5.12.2,Qt Creator 4.8.6解决方案:1.在系统环境变量中添加编译好的bin目录和lib目录,即加入程序所需的DLL2.去除影子创建3.查看项目的.cpp文件中,是否将某些语句写在ui->setupUi(this);之前...原创 2019-04-19 14:27:04 · 10774 阅读 · 3 评论 -
Qt :error: member access into incomplete type‘UI::XXX‘
原因:可能是将上一次编译产生的debug文件删除造成的解决方案:重新编译后关闭当前项目文件,重新打开项目即可消除该错误提示原创 2019-04-19 14:31:36 · 6398 阅读 · 0 评论 -
Qt界面样式表:仿TIM登陆界面
TIM登陆界面背景为3D,此处不做该项考虑,只截为普通图片*{font-family:cursive,sans-serif;}QWidget{ border-radius:5px;}/*用户框*/QLineEdit#le_name{ background:white; padding-left:5px ; padding-top:1px ; bor...原创 2019-04-19 14:41:46 · 1638 阅读 · 0 评论 -
Qt实战项目应遵循的三层架构(简)
业务思想:高内聚,低耦合一,表现层(UI):用户界面二,业务逻辑层(BLL):处理数据业务逻辑三,数据访问层(DAL):直接操作数据库,实现增删查改UI ⇄ Model ⇄ BLL ⇄ Model ⇄ DAL...原创 2019-04-19 14:55:05 · 5226 阅读 · 0 评论 -
Qt :sqlite数据库相关操作
相关编译环境:win10(64bit) Qt5.12.2 sqlite3 Qt Creator 4.8.61.在.pro文件中,QT += 后添加sql,如下:2.打开/连接数据库所需头文件:#include <QSqlError>#include <QSqlDatabase> QSqlDatabase db; db = QSqlDatabas...原创 2019-04-19 15:12:52 · 348 阅读 · 1 评论 -
Qt5:实现开机自启动功能
windows下开机自启动的实现方式:在注册表中添加启动项目//当前用户启动项,切换到其他用户失效 QSettings reg("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat); //HKEY_LOCAL_MACHINE\SOFTWARE...原创 2019-04-19 16:52:56 · 1004 阅读 · 0 评论 -
Qt:实现顶层窗体圆角
在构造函数中添加以下代码,使用一个BITMAP来实现窗体绘画: setWindowFlags(Qt::FramelessWindowHint); QBitmap bmp(this->size()); bmp.fill(); QPainter p(&bmp); p.setPen(Qt::NoPen); p.setBrush(Qt::black)...原创 2019-04-19 16:49:11 · 481 阅读 · 0 评论