![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT学习之路
文章平均质量分 75
QT学习之路
诺谦
热爱生活 活在当下
展开
-
76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)
相信CSDN还有很多像我这样的人,默默的为支持的人写教程 写demo、已经严重影响到我每次熬夜写好, 一上传demo就会想到又要被某某某无情践踏、本来就是做为参考和悄悄使用,结果就有人偏偏践踏我的劳动成果,隐忍了半年之久,然后我t了还说我吃相难看,部分截图如下所示。最开始本人只是做专栏分享,本人也很难,每次想到什么demo都是先给大家写,然后再花时间自己用、在本人不知道的情况下, 在群里发,并宣传一天不到就写好了。(其实动态多级折叠栏就已经花费了我4天、然后抽屉栏等等)原创 2023-03-16 14:13:50 · 8776 阅读 · 11 评论 -
70.Qt QWaitCondition多线程同步介绍及案例分析
1.QWaitCondition介绍QWaitCondition 用于的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。原创 2022-08-13 00:18:39 · 1587 阅读 · 0 评论 -
69.Qt 实现Https ssl证书与内网服务器ip进行双向认证
下载地址: Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions安装到第二个选项时,选择安装到指定的/bin目录下。 下载好后将两个dll拷贝到:然后在qt pro里导入:LIBS += -LD:\OpenSSL-Win64\lib -llibcrypto -llibsslINCLUDEPATH +............原创 2022-06-26 18:41:17 · 3391 阅读 · 1 评论 -
68.QT-信号槽Lamda表达式新写法
什么是Lamda表达式Lamda表达式是一个函数,其通用写法为:[capture](parameters) mutable ->return-type{statement} 其中:capture:捕捉列表------可以在表达式中使用代码前后的变量parameters:给这个lamda表达式传递的参数列表,如果不需要传参的话,parameters可以连同()一起省略。mutable:mutable修饰符。默认情况下,Lambda函数总是一个const函数,mu......原创 2021-09-10 10:34:15 · 1118 阅读 · 0 评论 -
67.QT-QSharedMemory
1.QSharedMemory介绍QSharedMemory提供了多个线程和进程对共享内存段的访问。它还提供了一种方法,让单个线程或进程锁定内存以进行独占访问。当使用这个类时,请注意以下平台差异:Windows: QSharedMemory不“拥有”共享内存段。当有QSharedMemory实例附加到特定共享内存段的所有线程或进程销毁了它们的QSharedMemory实例或者退出了,Wi...原创 2021-08-09 21:42:00 · 1069 阅读 · 0 评论 -
66.QT-线程并发、QTcpServer并发、QThreadPool线程池
1.线程并发一个程序内部能拥有多个线程并行执行。一个线程的执行可以被认为是一个CPU在执行该程序。当一个程序运行在多线程下,就好像有多个CPU在同时执行该程序。总之,多线程即可以这么理解:多线程是处理高并发的一种编程方法,即并发需要用多线程实现。2.如何分配线程数量利用 CPU 核心数,应用并发编程来提高效率.线程IO时间所占比例越高,需要越多线程;线程CPU时间所占比例越高,需要越少线程。理...原创 2021-07-06 13:51:00 · 1233 阅读 · 0 评论 -
65.QT-UDP组播实现多人共享桌面(同时支持收发显示)
这里我们只是简单学习下通过udp组播如何共享桌面demo.帧率上面比较低,毕竟没有用推流,只是简单的将图片发送到组播地址,而加入组播地址的客户端去取数据显示而已.主要是为了学习UDP知识而写的,真的想要做共享桌面的话,建议还是使用qtFFmpeg推流.速度上会快很多(后续有时间再来出)1.Demo介绍截图如下所示:gif效果如下所示(有点大,加载有点久):功能介绍一份代码同时...原创 2021-06-24 13:33:00 · 1294 阅读 · 2 评论 -
64.QT-单播、广播、组播
本章主要描述QT中如何实现单播、广播、组播,大家可以直接参考qt官方例子:Broadcast Sender : 广播方式发送Broadcast Receiver : 广播方式接收Multicast Sender : 组播方式发送Multicast Receive : 组播方式接收需要用到的函数bool QAbstractSocket::bind(const QHostAddre...原创 2021-06-24 13:10:00 · 2136 阅读 · 0 评论 -
63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
在上章我们学习了62.QT-QScroller实现home界面滑动效果,但是该界面是实现的上下滑动效果,如果想模拟手机home滑动界面,则需要实现左右滑动效果.本章,则重写QStackedWidget类,来真正的模拟手机,来实现home界面左右滑动效果.1.SmoothStackedWidget类实现demo界面如下图所示(创建了4个子界面):效果图如下所示(支持快滑,慢滑):如果...原创 2021-01-10 22:46:00 · 2120 阅读 · 4 评论 -
62.QT-QScroller实现home界面滑动效果
由于QScroller至少qt5.0以上,如果版本过低,建议去看58.tablewidget模拟手指实现滑动章节,来自定义实现滑动器.在学习本章之前需要知道滑动的关键词:鼠标按下,鼠标滑动 : 指的是用户按下屏幕,然后进行移动的操作,此时用户滑动多少距离,那么视图就偏移多少距离.平滑滑动 : 指的是手指离开屏幕了,然后会读取滑动的速率(距离/时间),从而让视图自己平滑的再滑动一段距离....原创 2020-12-19 22:20:00 · 1436 阅读 · 3 评论 -
61.QT-QSortFilterProxyModel代理实现自定义排序、联合过滤
在之前60.QT-QabstractTableModel模型、重写sort方法排序章节中,学习了如何用model,本章再来学习QSortFilterProxyModel代理1.QsortFilterProxyModel介绍QsortFilterProxyModel类用来为model和view之间提供强大的排序和过滤支持。将模型排序或者过滤后在视图上显示,并且无需对模型中的数据进行任何转换,...原创 2020-12-16 19:16:00 · 1184 阅读 · 0 评论 -
60.QT-QabstractTableModel模型、重写sort方法排序
在之前25.QT-模型视图章节中,没有具体描述如何重写model模型,所以本章以QabstractTableModel为例,来谈谈model如何实现.1.QabstractTableModel常用功能QAbstractTableModel子类化时,必须覆写:Int rowCount();//返回显示的行数int columnCount();//返回显示的列数Qvariant...原创 2020-12-16 16:49:00 · 1643 阅读 · 0 评论 -
59.QT-QRegExp和QRegularExpression
1.QRegExpqt5.0版本之前正则表示示类是QRegExp,通过它能够筛选出我们想要的数据,它的构造函数如下所示:QRegExp::QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, QRegExp::PatternSyntax syntax);其中QRegExp::Pat...原创 2020-12-15 21:23:00 · 766 阅读 · 0 评论 -
58.tablewidget模拟手指实现滑动
1.介绍嵌入式由于需要支持手指滑动,所以先写个demo,来试验.每次按下的时候,获取一次按下的pos以及按下的时间,然后释放的时候获取一次释放pos,从而计算出,每秒移动的像素点,其中计算代码如下所示:int ms= QDateTime::currentDateTime().toMSecsSinceEpoch()-pressMSec;int Pixel_per_second=qAbs(...原创 2020-12-09 23:22:00 · 791 阅读 · 5 评论 -
57.Qt-qRegisterMetaType
在定义信号槽的时候,传递的参数类型如果是自定义类型(自定义class类,或者enum类等),并且涉及跨线程时,最好先通过qRegisterMetaType()将自定义类型进行注册,否则会报错:QObject::connect: Cannot queue arguments of type 'XXXXXXX'(Make sure 'ERROR_LEVEL' is registered us...原创 2020-11-27 18:32:00 · 538 阅读 · 0 评论 -
56.Qt-滚动字幕之无间隙滚动
1.描述最近要实现一个滚动条字幕,但是搜到的系列文章都是利用定时器QTimer,在固定的时间截取文本并显示,这样滚动的时候其实是断断续续的,因为实际上是一个个字符位移实现的,不过实现方便.所以只有自己实现无间隙滚动条字幕.2.界面展示示例如下图所示:效果图如下所示(支持自适应主界面大小,根据主界面窗口变换,自动更正文本大小,速度):3.代码实现头文件:#ifndef TE...原创 2020-10-24 01:04:00 · 379 阅读 · 0 评论 -
55.Qt-将界面程序封装成静态库
1.生成dll然后选择创建静态链接库:创建的时候,记得勾选QtGui,并且修改pro文件,添加下面1句(这样就可以创建界面了):修改staticlib.cpp:#include "staticlib.h"#include <QMessageBox>StaticLib::StaticLib(){ QMessageBox::information(null...原创 2020-05-12 18:56:00 · 601 阅读 · 0 评论 -
54.Qt-将界面程序封装成动态库DLL
1.生成dll然后选择创建共享库:创建好后,修改pro文件,改为下面两句(这样就可以创建界面了):然后修改sharedlib.h:#ifndef SHAREDLIB_H#define SHAREDLIB_H#include <QtCore/qglobal.h>#if defined(SHAREDLIB_LIBRARY)# define SHAREDLI...原创 2020-04-23 12:03:00 · 790 阅读 · 0 评论 -
53.Qt-QPdfWriter绘制PDF,支持表单输出
之前打印PDF都是通过html形式来实现的,但是这次要做的东西,需要打印界面控件,所以需要使用QPdfWriter.通过QPdfWriter来获取QPainter对象,就能实现在PDF上来画画啦.代码生成的PDF如下所示:代码效果如下所示:代码如下所示://通过dialog来保存PDF路径QString mainWindow::pdfSaveAs(QString fileName...原创 2020-04-02 16:20:00 · 801 阅读 · 2 评论 -
52.Qt-Charts动态显示多条折线电压值(实现示波器效果)
Qt 5.7过后Qt添加了官方的Chart库,之前就用的比较习惯,这次把源码发出来,给入门的同学们参考参考.效果如下所示:1.chartsView.h如下所示:#ifndef VIEW_H#define VIEW_H#include <QtWidgets/QGraphicsView>#include <QtCharts/QChartGlobal>#in...原创 2020-01-04 20:58:00 · 932 阅读 · 0 评论 -
51.Qt-使用ajax获取ashx接口的post数据
接口地址如下所示:需要传递的参数如下:本章通过C++界面去获取qml方法来实现调用ashx接口(以一个C++界面demo程序为例)或者参考https://www.cnblogs.com/tingtaishou/p/11993214.html1.抓post数据通过网页获取到的post数据如下所示:所以查询20191121~20191122期间时则填入内容: "deptC......原创 2019-12-23 21:25:00 · 620 阅读 · 0 评论 -
50.Qt-QJsonDocument读写json
QJsonDocument: 提供一种读取和写入JSON文档的方法,可以通过它的的成员函数array()或object()检索文档中包含的数组或对象,然后读取JSON数据,或者修改数据。QJsonObject: 封装了一个JSON对象, 可以使用它的成员函数size()、insert()和remove()来对修改JSON数据.QJsonArray: 封装了一个JSON数组,用来实现JS...原创 2019-11-25 20:55:00 · 255 阅读 · 0 评论 -
49.Qt-网络编程之QTCPSocket和QTCPServer(实现简易网络调试助手)
8.9更新说明如下图所示,支持十六进制收发,下载地址已经更新.源码下载地址:https://download.csdn.net/download/qq_37997682/11504836若没有积分,可以加入 Qt | QML | C++技术交流群(779866667) 免费获取所有文章的demo资源哦~,并且还有许多入门资料在上章48.QT-网络通信讲解1,我们学习了网络通信基础...原创 2019-08-07 20:36:00 · 304 阅读 · 0 评论 -
48.QT-网络通信讲解1
网络概念MAC地址(硬件地址)网络IP地址(如192.168.1.101)网络端口(实现多路通信,用来给不同应用程序来区分使用,范围0~65535,比如浏览网页服务(80端口), FTP服务(21端口) )交换机和路由器路由器在网络层,路由器可以处理TCP/IP协议,交换机不可以.交换机在中继层。路由器根据IP地址寻址,交换机根据MAC地址寻址。路由器提供防火墙的服务,具有虚...原创 2019-08-07 14:55:00 · 206 阅读 · 0 评论 -
47.QT-QChart之曲线图,饼状图,条形图使用
1.使用准备在pro中, 添加QT+= charts然后在界面头文件中添加头文件并声明命名空间,添加:#include <QtCharts>QT_CHARTS_USE_NAMESPACE2.QChart之曲线图绘制曲线图需要用到3个类QSplineSeries: 用于创建有由一系列数据组成的曲线.类似的还有QPieSeries(饼图数据). QLineSeri...原创 2019-06-06 15:24:00 · 659 阅读 · 0 评论 -
46.QT-自带库QSerialPort串口使用
之前一章学习的是第三方库使用:34.QT-qextserialport第三方库制作串口助手(并动态检测在线串口,附带源码)本章来学习自带serial库1.QSerialPortInfoQList<QSerialPortInfo> QSerialPortInfo::availablePorts(); //获取当前在线的串口设备示例如下:...原创 2019-06-01 16:28:00 · 566 阅读 · 0 评论 -
45.QT-连接外部dll,lib库导入问题
dll库问题查看MZ_Card.dll对应的文档手册,如下图所示:所以代码写为:typedef BOOL (*Fun)(BOOL IsOpenComm,unsigned long Port, unsigned long nBaud, unsigned int BeepCnt); //定义函数指针 void func(){ Fun open=(Fun)myl...原创 2019-05-31 11:43:00 · 279 阅读 · 0 评论 -
44.QT-安装MySQL、测试连接MySQL
在上章学习了42.QT-操作SQLite数据库后,发现MySQL和SQLite的语句都大致相同,所以本章只测试MySQL是否能使用MySQL安装参考链接:https://blog.csdn.net/qq_38455201/article/details/834194501.由于QT版本是32位,所以MySQL安装也得是32位2.MySQL安装下载地址https://dev.mysql...原创 2019-05-28 16:47:00 · 272 阅读 · 0 评论 -
43.QT-访问远程SQLite数据库
在上章42.QT-QSqlQuery类操作SQLite数据库(创建、查询、删除、修改)详解学习了如何操作SQLite,本章来学习如何访问远程SQLite1.首先设置共享,映射(用来实现远程访问)将要共享的share文件夹设置为共享(远程访问默认只能读),如果要想远程访问能够写的话,则点击权限进行修改,然后应用.2.然后在远程电脑上,将共享的文件夹映射到磁盘上首先点击如下按钮:...原创 2019-05-25 15:25:00 · 530 阅读 · 0 评论 -
42.QT-QSqlQuery类操作SQLite数据库(创建、查询、删除、修改)详解
Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的“平台独立”,既包括操作系统平台,也包括各个数据库平台,Qt支持以下几种数据库:QT自带SQLITE数据库,不需要再安装 QTDS在Qt4.7起已经被移除1.QtSql要使用QtSql 模块的话,需要在.pro文件中添加这么一句:QT += sql2.QSqlDataba...原创 2019-05-25 11:58:00 · 1332 阅读 · 2 评论 -
41.QT-多线程与界面之间交互总结
1. 线程与界面组件需要注意的地方在QThread线程中不能直接创建QWidget之类的界面组件.因为在QT中,所有界面组件相关的操作都必须在主线程中(也就是GUI thread)所以, QThread线程不能直接操作界面组件.2.QThread线程如何操作界面组件-方法1将多线程类对象封装为GUI界面类的类成员然后在子线程定义信号函数,通过信号槽机制,向界面组件emit发射信...原创 2019-05-22 19:02:00 · 349 阅读 · 0 评论 -
40.QT-QPropertyAnimationdong和QParallelAnimationGroup动画实现
简述:QPropertyAnimation (动画类,用来向QObject对象添加动画)该类的继承框图如下所示:1.QAbstractAnimation(所有动画的抽象基类)该抽象类为QPropertyAnimation提供了动画播放,暂停,停止,持续时间,循环周期等抽象函数.其中常用的成员函数如下所示:int currentLoop() const ...原创 2019-05-21 23:02:00 · 341 阅读 · 0 评论 -
39.QT-Qtxlsx库使用
之前参考博客https://blog.csdn.net/c3060911030/article/details/51560239下载Qtxlsx库,然后编译的时候,显示:error: invalid use of incomplete type 'class QVector<QZipReader::FileInfo>' QList<QZipReader::FileI...原创 2019-04-20 23:23:00 · 321 阅读 · 0 评论 -
38.QT-QAxObject快速写入EXCEL示例
参考链接: https://blog.csdn.net/czyt1988/article/details/52121360http://blog.sina.com.cn/s/blog_a6fb6cc90101gv2p.html1. QAxObject介绍在QT中,有个自带的QAxObject类,可以直接操作EXCEL除此之外,当我们操作某个文件夹下的EXCEL的时候,都会在该文件夹下出现...原创 2019-04-20 23:17:00 · 541 阅读 · 0 评论 -
37.QT-QTSingleApplication-程序只运行一个实例
QTSingleApplication由Qt官方提供的,用于实现只启动一个实例,并在启动时可以向向另一个实例通信(依赖于QtNetwork模块)QTSingleApplication下载路径:链接:https://pan.baidu.com/s/1bBLgkpOW3lq6ZQj9ultxyA 提取码:2n9h 1. 添加源码到工程将QTSingleApplication解压,将解压后目录拷...原创 2019-02-15 17:22:00 · 228 阅读 · 0 评论 -
36.QT-解决无边框界面拖动卡屏问题(附带源码)
1.简介看到很多才学QT的人都会问为啥无边框拖动为啥会花屏?那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了,从而导致花屏.2.如何解决我们参考其它软件,比如QQ,浏览器等,可以看到我们如果在拖动它们的时候,会出现一个虚线框.如下图所示,可以看到在白色背景下,拖出的虚线框是黑色的...原创 2019-02-13 15:35:00 · 636 阅读 · 0 评论 -
35.QT-多线程
目录:1.QT中的多线程编程2.多线程示例3.多线程-终止示例4.多线程的同步5.多线程的互斥QMutex6.多线程的信号量QSemaphore7.moveToThread实现的线程程序和进程的区别进程是动态的,程序是静态的,进程是程序运行时的实例,是占用系统运行资源的程序进程是暂时的,程序是永久的, 进程是通过程序运行时得到的程序是一个数据文件,进程是...原创 2018-08-05 22:44:00 · 305 阅读 · 0 评论 -
34.QT-qextserialport第三方库制作串口助手(并动态检测在线串口,附带源码)
qextserialport-1.2rc库下载链接: http://www.pudn.com/Download/item/id/2298532.html1.添加源码到工程将qextserialport-1.2rc.zip解压,将解压后的src目录拷贝到项目里的子目录SerialSrc下,在项目pro文件中增加下面这行include(./serialSrc/src/qextserialpor...原创 2018-07-06 14:20:00 · 537 阅读 · 0 评论 -
33.QT-UTF8,GBK互转
首先需要用到QString的静态成员函数来获取字符数组:QByteArray QString::toLocal8Bit () ; //获取字节数组对象char * QByteArray::data (); //通过字节数组对象的成员data函数,获取char数组QTextCodec编码类介绍互转主要用到这个类,通过该类可以...原创 2018-07-06 11:43:00 · 216 阅读 · 0 评论 -
32.QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序...
由于第一次画控件,所以花了我2天时间,才画好效果图如下:上图的所有颜色(包括滑动的渐变/单一颜色,以及字体颜色)都可以自定义,包括图标也可以(上面的电阻图标,网上没找到好看的,所以很丑~)整体效果图如下所示:该demo程序放在了提供的源码地址里了,下载好后,在子文件夹demo1里面介绍代码里添加了自适应设置,根据窗口大小自动改变标签,图标,刻度值,中心圆数值等代码里集成了定时...原创 2018-06-30 01:11:00 · 626 阅读 · 2 评论