首页 › Category Archives › QT

QT5.13之后的版本需要自行编译Mysql的driver

前言

QT5.13版本后无法使用Mysql。


一、Mysql缺少报错

1.在QT中使用

2.然后会报以下错误:

继续阅读 »

Qt5–编译与安装

工欲善其事,必先利其器。学习任何框架,下载安装总是第一步。Qt因为开发源码,所以有直接安装和源码安装两种方式,建议是第一次先直接安装,如果后面需要重新编译特定的模块,或者需要静态库,再额外的编译源码。至于IDE,我推荐使用Qt自带的QtCreator。
继续阅读 »

Qt最新版5.15.1在Win10环境静态编译安装和部署的完整过程(VS2019)

本文本来是记录Qt5.12.2编译部署过程,目前Qt5系列的最后一个LTS版发布,这个版本没有提供离线安装版,要是用必须使用在线安装。这两天编译Qt5.15.1发现编译步骤没有什么变化,所以就改一个标题。

一、为什么要静态编译

用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要小上很多。
继续阅读 »

Qt 5.10.1 & vs2017 静态编译

  • 2018-03-05

准备:

1、源代码&编译器

继续阅读 »

浅谈 qmake 之 shadow build

shadow build

shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁。

这不是qmake独创的东西,cmake中早就使用这个东西了

继续阅读 »

用ISO C++实现自己的信号槽(Qt另类学习)

有网友抱怨:

哪个大牛能帮帮我,讲解一下信号槽机制的底层实现?
不要那种源码的解析,只要清楚的讲讲是怎么发送信号,怎么去选择相应的槽,再做出反应。也就是类似于一个信号槽的相应流程。。。求解啊!!!
看了源码,真的是一头雾水。。。撞墙的心都有了~~~~

本文使用 ISO C++ 一步一步实现了一个极度简化的信号与槽的系统 (整个程序4个文件共121行代码) 。希望能有助于刚进入Qt世界的C++用户理解Qt最核心的信号槽与元对象系统是如何工作的。
注:Qt5 staging仓库已经引入一种全新的信号与槽的语法:信号可以和普通的函数、类的普通成员函数、lambda函数连接(而不再局限于信号函数和槽函数)
继续阅读 »

从 相对路径 说开来(从C++到Qt)

在Qt论坛经常看到网友抱怨:

  • QPixmap(“dbzhang800.png”) 加载图片不成功
  • QFile(“dbzhang800.txt”) 打开文件失败

遇到这种问题,我一般回答:请注意区分进程的”工作目录 “与程序所在的目录 。但这种回答似乎还是显得太苍白了,既然如此,整理一下吧。

继续阅读 »

使用Qt编写服务器端程序(包括Http传输服务器端)的方法

使用Qt编写客户端的程序的示例或demo较多,但是编写服务器端程序的demo很少。当然,服务器端的程序一般不需要带界面,这点我们可以理解。不过有些时候我们还是需要使用Qt编写一个简单的测试用的服务器代码,这时候该怎么处理呢?

首先,头文件中需要做这两个对象:
QTcpServer * serverListen;
QTcpSocket *serverConnect;

其中,serverListen主要是用来监听的,这是QTcpServer类特有的一些功能。而serverConnect是和客户端程序一样的一个QTcpSocket类的对象,是在我们完成了监听任务之后,将连接交给这个对象,由它来完成数据传输的工作。
继续阅读 »

获取文件MD5码(支持大文件)

支持大文件md5的获取
废话不说,直接上代码
继续阅读 »

基于epoll的聊天室程序

epoll相对于poll和select这两个多路复用的I/O模型更加的高效。epoll的函数很简单,麻烦的地方在于水平出发和边沿触发。

用张图来说明下
20130713202857140

ET(边沿)只是在状态反转时触发,比如从不可读到可读。而LT(水平)就是如果可读,就会一直触发。所以在使用ET的时候要做一些额外的处理,比如可读的,一直把缓冲区读完,进入不可读状态,下次来数据才会触发。
继续阅读 »