
Qt 学习之路
文章平均质量分 69
沙振宇
将来的你一定会感谢现在奋斗的你。当你的才华还撑不起你的野心时,那你就应该静下心来学习。
展开
-
【Qt 学习之路】C++日志库 - 18种方法选型(读这一篇就够了)
最近有时间研究下使用 Qt 开发的相关日志类,包括各类的简述、使用特点、适用场景、推荐指数、典型类的使用等。本文调研了 18 种 日志相关类(包含:qInstallMessageHandler、Glog、Easylogging++、Qslog、Log4qt、Log4cpp、Log4cxx、Log4c、Log4cplus、Pantheios POCO、ACE、Boost.Log、G3log、Plog、spdlog、Rsyslog等),花费了很多精力。原创 2023-12-15 23:45:00 · 5968 阅读 · 5 评论 -
【Qt 学习之路】抓取崩溃信息(读这一篇就够了)
笔者抓取应用程序的崩溃,当时是在windows上用mingw编译器进行编译的程序,可以直接用微软提供的 SetUnhandledExceptionFilter() 方法来实现(msvc编译器略有不同)。如果在mac上用clang编译器,就不能用这一套了。好奇读小伙伴会想,有没有一种在各个平台上都能用的崩溃处理方案呢?答案是肯定的。谷歌提供了一套跨平台的崩溃转储和分析框架和工具集合Google breakpad。原创 2021-04-02 17:10:15 · 13695 阅读 · 8 评论 -
【Qt 学习之路】Qt 模仿 Windows资源管理器 部分实现超越
如果用Windows本身的资源管理器,超大图标模式,4W文件的情况全部加载完,8G内存都让他耗完了,就别提超大数据了,直接GG。我们这里的应对措施暂时应用翻页的处理方式,如果不考虑单页可承受内存的影响,最合理的应该是1w数据一页,占用内存如果用我们的处理方式,差不多稳定在100M以下。4万图片,全部图片加载过程占用500M,加载完初始化大小100多M,图片加载一半左右差不多已经是5G多,普通电脑根本不够它玩的。视频文件,Windows采用的是取视频的第10s的帧,不足10s的取最后的帧。原创 2020-11-09 16:22:23 · 7856 阅读 · 23 评论 -
【Qt 学习之路】Qt5各版本情况分析
Qt6 出生刚刚好一年的时间,已经出到6.6版本,带来了许多的新特性和改进。今天刚刚好抽空总结下陪伴 我工作这么长时间的 Qt5,据官方可靠消息 Qt5 将至 2025 年 5 月 26 日封版。原创 2023-12-09 20:00:00 · 9715 阅读 · 6 评论 -
【C++】面试常用知识点总结——基础篇
三次握手的最主要目的是确认双方都有收发数据的能力。三次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。第一次: A发给B。证明A有发消息的能力。第二次: B收到并发消息给A。证明B有收消息,并且有发消息的能力。第三次: A收到B消息。证明A有收消息的能力。二次握手达不到目的,四次多余。双方关闭连接要经过双方都同意。原创 2019-07-15 18:13:04 · 58087 阅读 · 11 评论 -
【Qt 学习之路】Qt 如何在 Windows上 交叉编译ARM 程序
习惯于开发Arm板上的程序时去Ubuntu上进行开发,如今就想懒一下,不想来切双系统。那么Qt如何在Windows上开发Arm呢?今天我们一起来盘盘吧~原创 2024-10-07 05:00:00 · 3723 阅读 · 5 评论 -
【Qt 学习之路】使用 cmake 在Windows上 编译 ZeroMQ
前几篇文章讲述了ZeroMQ是什么、网络通信,和如何在Qt上使用现成的ZeroMQ的库,本篇文章中主要讲述如何使用 cmake在 Windows上编译ZeroMQ。下载和安装这里不讲了,在之前的文章中讲述的已经很详细了,想了解的可以看以下相关资料。相关资料:链接地址链接地址。原创 2024-02-28 18:37:27 · 1988 阅读 · 0 评论 -
【Qt 学习之路】在 Qt 使用 ZeroMQ
今天是大年初一,先给大家拜个年,祝各位阖家欢乐,身体安康,万事如意。言归正传,最近调研了很多消息中间件,推荐一款比较好用的中间件 ZeroMQ,今天也把在 Qt 上如何使用 ZeroMQ 分享下。ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。原创 2024-02-10 17:31:05 · 3009 阅读 · 1 评论 -
【Qt 学习之路】Jetson Orin Nx CLB 开发套件上的 Qt 部署安装
Jetson Orin Nx 解决方案是NVIDIA为嵌入式人工智能计算领域推出的一款强大而灵活的解决方案。该方案基于NVIDIA Orin芯片组,提供高度集成的硬件和软件生态系统,旨在满足嵌入式设备在性能、功耗和散热方面的苛刻要求。Jetson Orin nx解决方案具有卓越的性能和扩展性,可为各种行业应用提供高效的人工智能计算支持。随着人工智能技术的不断发展和应用场景的扩大,Jetson Orin nx解决方案将有更广阔的发展前景。原创 2024-01-22 06:30:00 · 3740 阅读 · 3 评论 -
【Qt 学习之路】关于C++ Vlc视频播放
最近有童鞋咨询VLC相关的问题,公布一个 5年前 编写的 VLC示例 代码供参考学习。包括正常对视频各种常用的操作:播放/暂停、进度显示、进度调整、声音调整、视频切换等。也包括一些动画效果:显隐动画、加载动画、多视频切换动画等。原创 2024-01-12 11:46:23 · 732 阅读 · 0 评论 -
【C/C++】开源串口库 CSerialPort 应用
有需要了解 C++开源库 CSerialPort 的小伙伴,可以先去这边文章下了解下为什么要用 CSerialPort 和 CSerialPort 的介绍。找一个杜邦线直接串联起来就可以,这样发什么消息,就收到什么消息。如图是1口和3口短接。放开pro里面的这两行即可,注释掉就是命令行,Windows效果图如下。Linux下这台没装Qt,没尝试,串口名称改下问题不大。Windows效果如下,Linux一样可以运行,只是串口名称不一样。这里我用了一个宏来区分,一个是Pro的区分,一个是代码里面的区分。原创 2024-01-07 00:15:00 · 2668 阅读 · 1 评论 -
【Qt 学习之路】模仿Windows文件夹缩略图(QWidget、Qt Quick(QML)、以及QGraph)
文章目录1、简介2、效果图3、三种实现方式3.1、QWidget的mask遮罩3.1.1、bb叨3.1.2、核心源码3.2、QML的QtGraphicalEffects遮罩3.2.1、bb小叨3.2.2、核心源码3.3、QGraph的三板斧3.3.1、bb一小会儿3.3.2、核心源码1、简介放纵了自己一个月没写博客,如今又提起战刀杀回战场,奈何这硝烟已淡去了你的味道……言归正传,本文讲的不是简单的model/view或者widget的或者QML的基础框架实现,而是在这些框架之上的肉(文件夹缩略图)的效原创 2020-07-14 16:20:51 · 17971 阅读 · 4 评论 -
【Qt 学习之路】调用工业相机Basler的SDK使用示例
由于公司采购的AVT相机不足,需要用Basler相机来弥补,所以我也了解了一下Basler这款相机的SDK。由于Basler这边的相机提供的没有提供Qt的示例,所以我做一个分享出来。本篇的Demo采用的是工业黑白相机。工业应用中,如果我们要处理的是与图像颜色有关,那么我们最好采用彩色工业相机;如果不是,那么我们最好选用黑白工业相机,因为在同样分辨率下的工业相机,黑白工业教学精度比彩色工业相机高,尤其是在看图像边缘的时候,黑白工业相机的效果更好。原创 2017-12-19 16:56:24 · 74858 阅读 · 148 评论 -
【Qt 学习之路】Qt Creator自定义注释功能
如图是我自定义的注释字母“z”,如果你没有像我一样自定义自动补全键,那么最好别设置一位字母,因为Qt默认的自动补全是从第三位开始的。用注释来说明我们的代码,也方便模块化开发,那么我们在写注释的时候经常会写一些重复的内容,我们会复制粘贴。这样一来二去,就显得很繁琐。因为Qt默认的自动补全是在第三位字母输入后才开始提示补全的,如果我们自定义完后,在我们输入1位字母后,如果有补全的信息,按一下自动补全键就会提示补全了。按一下自定义的字母,然后按自动补全键,就看到自己的注释了吧,然后按一下回车就OK了。原创 2016-10-12 15:19:42 · 10926 阅读 · 2 评论 -
【Qt 学习之路】Qt如何上传zip文件(两种形式)及随机生成规定长度的字符串
以zip文件为例:1、文件流形式上传zip文件void SNetWork::uploadFile(QString filePath, QByteArray rand, QByteArray dateTime){ QFile file(filePath); file.open(QIODevice::ReadOnly); QByteArray data = file.原创 2017-10-10 15:44:50 · 1438 阅读 · 1 评论 -
【Qt 学习之路】解决Qt :libpng warning: iCCP: known incorrect sRGB profile警告信息
原因就是这个因为libpng 1.6,太敏感了,1.6及以上版本增强了ICC profiles检查,所以发出警告。libpng 警告:iCCP:已知不正确的 sRGB 配置文件。您可以忽略该警告。要摆脱它,请从 PNG 图像中删除 iCCP profiles。一些应用程序将警告视为错误;如果您正在使用这样的应用程序,则必须删除该块。原创 2017-09-01 13:41:59 · 49937 阅读 · 13 评论 -
【Qt 学习之路】QTableWidget表头中增加checkbox以及QTableWidget各种小知识
QHeaderView提供了sectionResized信号,它的参数是这样的:void sectionResized(int logicalIndex, int oldSize, int newSize);我们可以自建类(也可以直接用上述的1中我建好的类),然后继承(或组合)QHeaderView类,然后通过信号与槽来做处理,这里提供了一个方法。这里STableWidgetItem类是我自己创建的QWidget,可以自己添加QWidget中的内容,比如复选框、按钮等。原创 2017-08-25 16:59:28 · 20396 阅读 · 6 评论 -
【Qt 学习之路】QML中Text、Image适配
一般习惯用Text.ElideRight(在右边缩进),缩进主要和Text的width有关。如果我们改成parent.height/10.0的话,我们就改变了行间距的大小,显示效果看到了行间距。Text.WrapAnywhere - 在行上的任何一点都有可能换行,即使它发生在中间的一个文字。Text.Wrap - 如果可能的话,在单词边界换行,否则在适当的点,即使是在中间的一个字。这里的行间距默认是parent.height/16.0,这样显示效果是没有间距的。除了自动换行,Text用的比较多的是缩写。原创 2016-09-02 15:12:55 · 10289 阅读 · 1 评论 -
【Qt 学习之路】QSerialPort处理串口通信
QSerialPort提供了访问串口的接口函数。使用辅助类QSerialPortInfo可以获取可用的串口信息。将QSerialPortInfo辅助类对象做为参数,使用setPort()或setPortName()函数可以设置要访问的串口设备。设置好端口后,可以使用open()函数以只读、只写或读写的模式打开使用。注意,串口使用独占方式打开。使用close()函数关闭串口并且取消IO操作。串口成功打开后,QSerialPort会尝试确定串口的当前配置并初始化。原创 2017-05-05 14:01:18 · 10478 阅读 · 1 评论 -
【Qt 学习之路】Qt构建套件路径手动设置
Qt构建套件一般来说是不需要重置的,在非正常情况下,需要我们手动设置比如说我刚刚这次吧,安装了固态硬盘后,在固态硬盘上装了新系统,再打开Qt时,Qt所在的盘符发生了变化,由于系统环境变量是新的没有设置Qt的,所以Qt自己找不到自己的构建套件。所以需要我们手动设置,否则重装也行,如果你不嫌麻烦的话。共分为3步。原创 2017-02-13 17:41:48 · 17446 阅读 · 3 评论 -
【Qt 学习之路】Qt用VS添加RC文件(及Qt-VS-Addin插件使用方法)
Qt版本:5.5.1VS版本:Microsoft Visual Studio2013Qt-Addin版本:qt-vs-addin-1.2.5。原创 2016-09-23 14:14:20 · 5539 阅读 · 1 评论 -
【Qt 学习之路】QListWidget的类似Windows缩略图效果
用QFontMetrics计算出字体大小换行,英文换行也可以通过setWordWrap(true);最近在做类似Windows的缩略图效果,碰到很多坑,一 一 记录下来。希望看到此篇文章的人能吸取一点东西~先QImage绘制一个透明的图片,再在次图片上绘制操作,可以和WIndows一样加阴影。scale成100*100的固定尺寸,60m内存。示例还没加阴影,现在的成品就不展示了……1000个图片,总共30m多M的硬盘占用。千万注意,QImage要scale~;不scale,直接设置,1个G内存。原创 2020-11-06 19:15:09 · 455 阅读 · 0 评论 -
【Qt 学习之路】Qt用QProcess调用可执行程序
运⾏过程要启动进程需要将要运⾏的程序的名称和命令⾏参数作为参数传递给start()函数。设置参数的⽅式有两种:⽅式⼀,将参数保存在QStringList对象中;⽅式⼆,调⽤setProgram()函数和setArguments()函数进⾏设置。调⽤start()函数或open()函数启动进程。在程序启动后,QProcess进⼊运⾏状态并发出started()信号。当进程退出时,QProcess重新进⼊NotRunning状态(初始状态),并发出finish()信号。原创 2016-09-22 17:27:57 · 14820 阅读 · 1 评论 -
【Qt 学习之路】Qt窗口强制永久置顶
两种方法各有千秋,个人还是喜欢用第一种。Qt 虽然已经做的不错了,但毕竟不是各个系统的亲儿子,调用各个系统的API还是要更给力一些。原创 2016-09-27 18:02:03 · 6984 阅读 · 14 评论 -
【Qt 学习之路】windows提供keybd_event实现虚拟键盘
Windows提供了一个模拟键盘API函数Keybd_event(),使用该函数可以相应的屏蔽键盘的动作。Keybd_event()函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。原创 2016-09-02 11:27:18 · 4088 阅读 · 1 评论 -
【Qt 学习之路】Qt生成与解析Json
QJsonDocument提供了读写Json文档的方法。QJsonDocument是一个包含了完整JSON文档的类,支持以UTF-8编码的文本和QT自身的二进制格式来读写JSON文档。JSON文档可以使用QJsonDocument::fromJson()将基于JSON文档的文本形式转换为QJsonDocument对象,toJSON()可以将QJsonDocument转换回文本形式。解析文档的有效性可以使用!isNull()进行查询。使用isArray()和isObject()原创 2016-11-22 12:02:28 · 9310 阅读 · 1 评论 -
【Qt 学习之路】Qt创建/删除文件、文件补全功能
要创建和删除多个pdd和多个pff文件(这些是自己创建的类型),一个个手动创建和删除很麻烦,就做了一款小软件解决此问题。原创 2016-10-13 15:33:31 · 2562 阅读 · 1 评论 -
【Qt 学习之路】Qt解析XML的2种方法
第一步,在pro文件中添加所需的xml。原创 2016-10-13 11:01:34 · 4672 阅读 · 1 评论 -
【Qt 学习之路】Qt在Windows上设置应用程序信息
这些资源文件目的就是为了方便项目中的资源统一管理,例如我们在Window上,通常会用到RC资源文件,为exe设置详细信息,其中包括:文件说明、产品名称、产品版本、版权等信息。资源文件:Windows上是RC文件,Ios和Osx上是plist文件,Android上是xml文件,linux上是普通文件(Linux可以说就是一个文件系统)。其实这些都是不同样式的资源文件,所以,这里准备一个公共宏,具体哪个系统再具体区分就好了。2、Qt的pro或pri文件中添加rc文件就可以了。可执行程序添加一个图标。原创 2016-09-27 17:08:00 · 3354 阅读 · 2 评论 -
【Qt 学习之路】QML遮罩效果Demo
控制 sourceMask 的 alpha 值的行为。如果此属性为 false,则生成的不透明度是源 alpha 与遮罩 alpha 的乘积,As * Am。如果此属性为 true,则生成的不透明度是源 alpha 乘以遮罩 alpha 的倒数,As * (1 - Am)。使用缓存效果输出像素,可以提高渲染性能。每次更改源或效果属性时,都必须更新缓存中的像素。所以我们建议在源属性或效果属性设置动画时禁用缓存。遮罩项渲染到中间像素缓冲区中,结果中的 alpha 值用于确定源项在显示中的像素可见性。原创 2016-09-20 17:43:30 · 4337 阅读 · 1 评论 -
【Qt 学习之路】Qt的4种提示框
Qt的提示功能有4种: 用Qt部件自带提示函数setToolTip() QToolTip方法定义单词提示,提升部件: QMessageBox 是 Qt 框架中常用的一个类,可以生成各式各样、各种用途的消息对话框原创 2016-11-22 13:16:00 · 13281 阅读 · 1 评论 -
【Qt 学习之路】Qt制作密码框
Qt的密码框有很多种实现方式。比如更改的echoMode属性,设置为Password。原创 2016-11-22 13:40:53 · 11095 阅读 · 4 评论 -
【Qt 学习之路】QCombobox应用QStyledItemDelegate
QComboBox是个很基础的控件,也是继承自QWidget。原创 2016-10-13 14:43:40 · 5616 阅读 · 3 评论 -
【Qt 学习之路】Qt用Poppler库解析PDF成图片的简单示例
代码的目的就是简单的从桌面上获取一个叫test的pdf,然后把每一页解析成一个图片。解析PDF这里用的是Poppler库,与之相关的库还有MuPDF库,原创 2016-11-22 14:59:36 · 6092 阅读 · 8 评论 -
【Qt 学习之路】QUdpSocket发送与接收消息
QUdpSocket(通信套接字),UDP(User Datagram Protocol,用户数据报协议)UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用于可靠性要求不严格,不是非常重要的传输。QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报,”Socket”即套接字,套接字即IP地址+端口号。其中IP地址指定了网络中的一台主机,二端口号则指定了该主机上的一个网络程序,使用套接字即可实现网络上的两个应用程序之间的通信。原创 2016-12-07 17:58:32 · 10858 阅读 · 5 评论 -
【Qt 学习之路】Qt5.6作浏览器Demo可查看地图
可以用ui提升部件的方法,设置控件为Microsoft web browser。用到ui里面的QAxWidget控件,用以下这个类来提升这个控件。这里的url可以是网络地址,也可以是实体html。原创 2017-02-06 16:55:20 · 3235 阅读 · 2 评论 -
【Qt 学习之路】QML翻转效果
此类型提供一个可以翻转的界面。此类型提供一种可以在其正面和背面之间翻转的。这个Demo的源码我已经上传到优快云,可以下载O(∩_∩)O哈!类型结合使用来产生翻转效果。此示例仅供大家学习参考。原创 2017-02-07 11:28:24 · 9914 阅读 · 4 评论 -
【Qt 学习之路】QSystemTrayIcon增加系统托盘图标
要添加系统托盘项,首先,需要创建一个QSystemTrayIcon对象,并调用setContextMenu()为图标提供上下文菜单,然后,调用show()使其在系统托盘中可见。**注意:**系统托盘菜单并不对菜单有所有权,必须确保在恰当的时候删除菜单,例如:创造一个具有合适父对象的菜单。通常在桌面上提供一个特殊的区域,称为系统托盘或通知区域,长时间运行的应用程序可以显示图标和短消息。在一些系统中,tooltip的长度是有限的,在必要时tooltip将被截断。设置指定菜单为系统托盘的上下文菜单。原创 2017-03-15 16:08:08 · 2471 阅读 · 1 评论 -
【Qt 学习之路】Qt定制虚拟键盘
最近调用系统键盘的时候有些时候系统的键盘并不满足需求,所以做了个小Demo先看一下效果:看一下核心代码:#include "skeyboard.h"SKeyboard::SKeyboard(QWidget *parent) : QWidget(parent){ for(int i = 0; i < 43; i++) { QPushBut...原创 2017-02-22 16:58:37 · 3228 阅读 · 1 评论 -
【Qt 学习之路】QAxWidget加载Flash
【代码】【Qt 学习之路】QAxWidget加载Flash。原创 2017-02-16 16:32:45 · 2065 阅读 · 1 评论