Qt
文章平均质量分 58
smy..
这两年较忙,更新较少, 随机上线,乱写一气
感谢各位 谢谢大家!
展开
-
Qt 串口通信(QSerialPort)
与下位机,单片机通信少不了使用串口进行通信,Qt 也提供了串口通信的类QSerialPorthttps://doc.qt.io/qt-5.9/qserialport.html //小伙伴们具体去看文档使用的时候在 pro 添加这句导入模块 QT += serialport 1.连接串口 第一步就是 要先获取到 可连接的所有的串口的名字QSerialPortInfo::ava...原创 2018-08-14 16:55:50 · 169125 阅读 · 58 评论 -
关于qt qpixmap qimage 无法正常加载jpg格式图片问题(坑啊)
近期遇到一个问题是QPixmap / QImage 无法加载 .jpg / .jpeg 格式的图片QLabel .showPixmap 无效以下都确认是没有问题的1.图片路径无问题2.大部分都说是打包的程序没有把 exe 同级目录的 plugins 或者 imageformats 目录加进来因为内部包含我这些我试了 对我的这个问题是无效的,可能对你们有帮助QApplication::addLibraryPath(QCoreApplication::applicationDirPath()+原创 2021-11-05 15:21:49 · 7059 阅读 · 8 评论 -
qt 5.12.11 + vs 2019 32位 静态编译qt 带有 openssl (踩坑实例记录)
如题如题为啥编译openssl?因为 之前搞的静态编译 做的卸载包没有问题, 后面加入了埋点上报https的没有openssl的支持 https请求会错误,并且无法动态链接,故要在编译qt 源码时候把 openssl加入进去折腾了一整天…如果 不编译openssl 请看这篇文章qt 5.12.11 + vs 2019 32位 静态编译qt 环境配置啥的 这里不多说请看上面的文章.1. openssl 版本选择我编译了1.1.1 .81.0.11.1.0三个版本 最后这个1.1.0原创 2021-11-03 18:04:12 · 1763 阅读 · 0 评论 -
Qt QNetwork 下载文件
先来看一个图说一下Qt的QNetwork 模块吧qt提供的这个网络模块还是很好用如果不是特别大型的项目,对网络有极高的要求,使用curl啥的,否则这个QNetwork完全满足了。使用:pro += QNetworkvs的勾选QNetwork我们需要使用到3个东西#include <QNetworkAccessManager>#include <QNetworkReply>#include <QNetworkRequest>QNetworkAc原创 2021-09-23 14:36:15 · 1727 阅读 · 2 评论 -
Windows qt 应用程序进程互斥;当应用程序存在,在启动新的会切换会已存在的,程序最小化托盘时也能显示出来的实现方案
如题我们经常会有这样的需求,单进程互斥就是 一台电脑只允许同时允许一个这个应用程序常见的一般为两种:1.再次启动这个程序时候, 会给你弹框 ,考诉你已经启动过了,别重复启动2.就是直接找到存在的这个程序,给你显示出来其实这两种 都有很多的实现方式, 比如自己搞个共享内存, 传递信息, 这里咱们用比较简单的方式第一种很好实现,一个全局的Meutux 就可以搞定bool isAlreadyRun(){ // 搞个唯一的标识符就行, 一般都是用 vs 的生成 GUID + 自己程序的名字啥的原创 2021-08-26 18:05:33 · 363 阅读 · 0 评论 -
qt 5.12.11 静态编译qt 源码
前言:qt 做好应用程序 安装卸载程序基本都基于第三方的软件 比如 nsis 和 inno setup 但是这个第三方软件自定义程度不够高还要学习语法,所以想自己用qt 实现,qt 的安装程序 要依赖 qt dll 我是通过自解压程序实现的WINRAR自解压实现但是卸载程序要拷贝到临时目录也要实现WINRAR 太麻烦所以就采用静态编译 这样编译出来的exe 体积会大 但是不需要qt的那些依赖的,已经编译到exe中了1.下载qt的源码5.12.11源码下载qt-everywhere-src-原创 2021-08-20 16:54:33 · 949 阅读 · 0 评论 -
qt 源码目录结构与类文件结构 详细解读 多图
Qt 源码目录结构有些同学想看qt的源码 可能找不到地方入手这里简单的说一下1.首先安装qt时 一定要勾选安装了source源码才行 否则没有这里就不多说了2.说一下qt的结构目录吧5.12.11 这是以qt版本命名的文件夹 里面包含了 源码 + qt类库docs 文档examples qt的实例demoTools 是开发工具集 比如 QtCreator mingwvcredist 就是 vc运行库ok 主要看一下 5.12.11这一层 包含类库 和 源码srcmingw原创 2021-08-13 15:37:22 · 7974 阅读 · 1 评论 -
Qt 事件机制源码分析 QApplication exec 源码分析 多图超级详细
前言:写qt 的都知道 以下代码, 这段代码究竟的运行机制是怎么样的咱们一步一步的看QApplication a(argc, argv); QWidget w;w.show();return a.exec();QApplication 的继承结构先看一下上图比较清晰了, qapplication 继承于 qguiapplication 继承于 qcoreapplication然后qt万物继承于qobject 没毛病。事件机制都知道windwos 基于消息循环这个消息机制原创 2021-08-13 11:06:03 · 3667 阅读 · 4 评论 -
QLineedit 源码调试关于placheholderText的坑
前言:接近一年没有更新文章了 也没有看评论与私信,哎 日常工作太累了,也变懒了这里分享一个遇到的小坑 关于QLineedit 设置默认占位内容的 setPlacheholderText背景:我们客户端内嵌了cef浏览器在调试一个客户端UI 与 前端页 UI 字体对不齐的bug直接上图说一下吧ps:这里具体的一些东西就不说了 直接说问题和重点吧相比上图前端实现, 明显的客户端 绿色圈里有个空隙 这个空隙是哪里来的?秉承与 UI 1px不差的原则 这个问题要修复思路:要不就是自己代码的原创 2021-03-09 21:34:18 · 550 阅读 · 0 评论 -
Qt 拖拽实现拼图 【官方demo源码超级详细解读】
前言:如果不了解Qt drag-drop 的建议先看一下 Qt 实现拖放内容 drag - drop 【简单明了】否则看起来会一头雾水看一下官方的介绍:译文:这个例子是一个简单的拼图游戏的实现,它使用了Qt的模型/视图框架提供的对拖放的内置支持。拖放拼图的例子展示了许多相同的特性,但是采用了另一种方法,即在应用程序级别使用Qt的拖放API来处理拖放操作。这个拼图的demo 还是能学到东西...原创 2020-04-16 16:34:45 · 3324 阅读 · 3 评论 -
Qt 实现拖放内容 drag - drop 【简单明了】
前言:看几天看了 Qt 实现跨‘窗口’,‘程序’ 拖拽 文件,信息,图片之类感觉看完他们写的文章 ,还是不太明白 自己看了看 试了试写这篇文章巩固一下本文说的比较详细简单我下面录制的 gif 因为拖拽时 的图标不会被录制进去 观看会受到极大的影响下面是我用手机照的照片移动过程中 …我们仔细的看这个过程1.当我们鼠标 点击 send widget 时候 会触发 mousePr...原创 2020-04-16 15:11:22 · 5506 阅读 · 0 评论 -
Qt 纯代码模仿 WPS 登录界面
前言:先看一下 WPS 的登陆界面多看两遍 你会发现他的细节真的很多比如 鼠标 hover 阴影背景切换的翻页效果然后我想的是我也实现一下这个大体的效果吧最后 这个翻页动画效果没有实现 。。。我代码都是用 Qpainter 画出来的 实在不知道怎么实现 翻书动画效果了QPropertyAnimation 这个类貌似不能给Qpainter 用各位小伙伴如果有好的实现方法 可以在评...原创 2020-04-15 15:36:20 · 2469 阅读 · 1 评论 -
Qt 图像叠加模式[composition Modes]官方例子 源码解读
前言:看 qt 的例子 看到个有意思的图片质量有压缩 看起来不美这个代码 比我们平常看到的要复杂一点 能学到东西 我把源码看了一下在这里在仔细整理说一下composition 项目结构一个 shared 文件夹几个类注意 这个 hoverpoints 类没有用到因为我没有开启 opengl两个资源文件 一些美化控件的图片两种 底色图片 就是那个背景花一个 h...原创 2020-04-10 18:19:11 · 2269 阅读 · 0 评论 -
Qt 自定义委托(delegate) 实现进度条
前言:本文就不介绍基础了需要具备 M-V-D的知识model view delegate不清楚 mvd 结构的 建议先去了解一下 否则看起来比较吃力项目结构比较简单清晰 一个小demomain 函数manwindow 主界面progressbardelegate 自定义的进度条委托我们自定义委托 直接上代码吧我们这个小demo 只需要 重写基类的 paint 就行如果有...原创 2020-04-09 18:33:14 · 2476 阅读 · 3 评论 -
Qt 播放语音 QTextToSpeech
前言:看 qt 的 demo 看到一个播放语音的 玩了玩 还可以就是太"傻瓜"的操作了 我以为能学到一些东西speech->say("你好");这样就能说 你好我这就不弄动图了 因为听不到声音基本的功能设置声音设置速率设置高低音然后 有 播放引擎 是基于你系统的TTS 引擎语言的话 可以选择 中文 英文 等 去系统里面可以设置QTextToSpeech (Qt ...原创 2020-04-08 19:04:45 · 4701 阅读 · 0 评论 -
Qt 用 MVD(model view delegate) 模式 把图片变为灰度像素点 [官方Example]
前言:今天看到一个好玩的 qt 官方的 demo可以把图片 变为 一个个灰度的像素点先来看一下这个是 qt 的图片这个是我加载的 我的头像不过 看 这个 demo需要了解 Qt 的 MVD 模式model view delegate如果你没有听说过 mvd mvc 应该听说过吧 model view controlqt 这里把control 换成了 del...原创 2020-04-08 15:50:38 · 1771 阅读 · 0 评论 -
Qt 图形视图框架碰撞检测 官方Demo 移动的小老鼠
前言:本文需要了解基本的 Qt 图形视图框架结构和坐标系统否则 你可能看不懂还是看一些 官方demo 可以学到人家一些编码的东西 今天看到个好玩的 见下图发现没 当小老鼠 碰到以后 耳朵就变红 也就是有碰撞检测机制整个的结构就是管理场景 管理这些小老鼠 是: QGraphicsScene 类能拖拉的这个窗口 视口 背景设置为了 奶酪的 图片 是 : QGraphicsView ...原创 2020-04-01 16:50:00 · 4633 阅读 · 2 评论 -
【转载】Qt 图形视图框架的结构和坐标系统【清晰简单】
前言:转载 自: https://www.cnblogs.com/linuxAndMcu/p/11064489.html很久之前项目用过 这套框架, 好久没用了 在网上搜搜了 看了一看这篇文章 把坐标系统和整体框架结构 讲出来了 简单明了我转载过来了这里我加一句 必须要重写这两个函数 如果不写编译器会报错 因为基类把这俩函数设置了 纯虚函数所以必须要实现...转载 2020-04-01 15:35:45 · 832 阅读 · 0 评论 -
Qt 官方demo Basic Drawing 详解
前言:来看一个 qt 自己的demo ,然后细细的看下他们的代码 能学到一些新知识比如 tr("&S") 加这个& 代表什么意思setBuddy() 函数的作用 等等入口:效果图:#####1. 先看下 整个的项目结构:两个 类renderareawindow2个资源图片还是很简单的一个小demo2.看main 函数很简单 上来先 初始化 资源...原创 2020-03-31 18:01:36 · 713 阅读 · 0 评论 -
Qt qwidget 源码剖析 (一)
前言:今天看了看 qt qwidget的源码 ,看不不是很细 粗略的看一下 类的结构,构造 和 一些函数这里把怎么查看源码,查看源码的流程 的方法给大家分享一下(最后我也没找到调用 Win32API 的地方 ε=(´ο`*)))唉)首先 你要确认在装Qt 时 勾选了 Source 模块 ,里面就是源码然后在 调试器里面 配置源码的路径路径就是 你安装的qt src 目录下工欲善其事...原创 2020-03-26 18:35:12 · 3725 阅读 · 2 评论 -
Qt 信号槽传递自定义的结构体
前言:平常我们用信号槽 参数用qt内部定义的 和 c++ 的类型都是可以的但是要传递一个自定义的结构体要怎么弄?如果不注册 直接连接的话 编译是不会报错的 执行的时候会报错 不生效struct my_Custom{ ... ... ... }在结构体下面 注册一下这个结构体Q_DECLARE_METATYPE(my_Custom)添加 头文件 #include ...原创 2020-03-18 15:49:21 · 945 阅读 · 0 评论 -
【转载】Win32API 原生的窗口是怎么显示出来的?
之前面试金山一面 面试官问 windows 下 一个原生的窗口是怎么显示出的qwidget 源码中我没回答出来今天查了一下看了一下 转载的https://www.cnblogs.com/iBinary/p/9576439.html#include "pch.h"#include <iostream>#include <Windows.h>int m...转载 2020-03-18 15:41:39 · 580 阅读 · 0 评论 -
QCalendarWidget 日历控件
前言:Qt的 QCalendarWidget 日历控件配合 QDateEdit 和 QTimeEdit 控件 完成了一个日期选择的控件,封装成了一个类直接添加-提升为就可以用我这里实现的是 点击 QDateEdit 弹出 日历控件 双击日历的某一天 隐藏日历窗口 把值设置到 QDateEdit控件中我给QDateEdit 注册了事件,监听点击事件我这里就简单说一下我用到的接口 详细的接口...原创 2019-09-12 18:38:14 · 1298 阅读 · 0 评论 -
Qt/C++ + opengl 解析stl文件(二进制和Ascii两种格式)
前言:3D 的stl 模型文件分为两种 二进制和Ascii明码的Ascii 内容清晰可以打开看,但是文件比较大二进制的文件 看不到内容 但是占用空间小我是用 qt + opengl 加载 stl 模型本章写 qt c++ 加载 ascii 格式 和 二进制格式的 stl 文件ASCII 格式: /* ASCII STL 格式 * * ...原创 2019-11-22 18:10:58 · 4732 阅读 · 6 评论 -
自定义标题栏最小化在最大化(Qt界面控件不刷新了)
!!坑当时写的软件用的自定义标题栏 设置 Qt::Frame;essWindowHint 和 Qt::WA_TranslucentBackground,然后最小化 在点击任务栏上的图标使其最大化 反复搞两次 Qt 的界面就卡死了 不刷新了 ,按钮点了也没反应 也没焦点 QLineEdit 也点不到 ,当时解决这个问题都做好通宵的左准备了 以为是内存泄漏了 就把其他的代码都给注释了 就,留下 标...原创 2018-08-08 17:02:30 · 1130 阅读 · 0 评论 -
Qt + mysql 获取表占用的空间
前言:我现在需要获取mysql中某个表的已占用大小 ,然后做一些操作处理还是用qt 调用sql语句就是上面这一行 ,来肢解一下说一下什么意思select CONCAT(round(sum(DATA_LENGTH/1024/1024),2),'MB')as data from information_schema.TABLES WHERE TABLE_SCHEMA ='origitech'...原创 2019-09-09 15:51:09 · 256 阅读 · 2 评论 -
Qt5 Release 打包(windeployqt)以后 mysql连接失败 [亲测可用]
前言:之前发布了一般带数据库(mysql)功能的软件,打包以后正常使用今天重构完成,今天用 windeployqt 打包以后 数据库连接失败之前可以今天为啥不可以? 环境版本都没变除了重装过系统,win7-win10 其他环境都没变qt 5.9.2 mingw 32 bit mysql 5.5 32bit早上要发布 急的我是不得了网上查了各种 大部分都说是 在 加一个 plugins...原创 2019-08-15 11:56:18 · 2884 阅读 · 10 评论 -
Qt 4.x linux 串口通信(SerialPort)
前言:之前写过一篇Qt 5.x+串口通信的文章: https://blog.csdn.net/weixin_42837024/article/details/81669540现在环境变为 qt 4.8 没有Qt 封装的跨平台的 串口类可以使用网上开源的 posix_qextserialport,qextserialport我在使用这个库的时候,在linux 正常使用但是我的环境是 a...原创 2019-08-14 12:13:57 · 6380 阅读 · 8 评论 -
QTimer 定时器使用误区
前言:今天一个定时器的bug搞的我怀疑人生了,定时器触发一次,怎么进这么多次槽函数!难道是 stop 停不下来 ? 疯狂找stop 停止失败的原因后来发现了规律 原来是connect 位置的问题最后总结了一个demo:效果: 点击一下定时器 3s之后进入 槽函数,在点击一下在3s之后进入槽函数大家看出来代码有什么问题了吗?运行效果:每点一次按钮 进入的槽的次数就越多!!!...原创 2019-08-13 16:44:56 · 2613 阅读 · 1 评论 -
QCustomplot 实现鼠标追踪定位线以及坐标
前言:继承超强绘图控件QCustomplot 实现的鼠标追踪定位线qcustomplot的优点:支持海量数据不卡顿,100w+拖拽,放大,缩小,坐标系放大缩小详情请看 QCustomplot的官网及文档https://www.qcustomplot.com/先看效果:这个小demo完整代码放到github 了 要用这个类 直接把.h和.cpp copy出来就行QT+= prin...原创 2019-09-12 15:17:45 · 2969 阅读 · 1 评论 -
Qt QSetting 读写ini配置文件(简单明了,多图)
前言:在我们开发的过程中有很多信息需要存到本地,比如IP ,端口号以及用户的一些信息一些轻量级的信息用配置文件存取最适合不过了配置文件 *.ini 以 ini 结尾 格式也是很简单 有 节, 键, 值 组成。今天的主角是 QSetting 他不仅仅可以读写 ini 配置文件,还可以读写系统注册表等,我们本节只介绍 读写 ini 配置文件QSetting先添加头文件 #inclu...原创 2019-09-17 17:19:44 · 3581 阅读 · 1 评论 -
qt 傅里叶变换 fft 并画图(时域转换为频域)
前言:这里我使用的 fft 类 是使用的这位博主的https://blog.csdn.net/shadown1ght/article/details/77628389我在上面封装一下 可以用qt的qvector 使用起来非常方便把 fft.h 和 fft.cpp 添加进去,调用接口 传出时域数据,会返回频域数据我这里使用的超强绘图控件是 QCustomplot 支持大量数据显示 5...原创 2019-09-20 15:37:51 · 20759 阅读 · 30 评论 -
Qt/C++ 获取windows磁盘空间
quint64 getDiskFreeSpace(QString driver){ LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16(); ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes; if( !GetDiskFreeSpaceEx( lpcwstrDrive...原创 2019-09-23 19:30:41 · 681 阅读 · 0 评论 -
Qt 确认按钮对话框
有些重要的选择需要再三提醒用户来确认就需要确认对话框比如:清空数据库,删除重要的文件 等原创 2019-09-24 17:37:48 · 2901 阅读 · 0 评论 -
Qt 打开文件(QFileDialog),获取文件信息(QFileInfo),读写文件(QTextStream)
Qt 打开文件,获取文件信息,读写文件选择文件对话框 QFileDialog #include <QFileDialog>可以设置一个过滤后缀,也可以设置多个后缀可以设置选择一个文件或者选择多个文件文件信息 QFileInfo有好多的接口 常用的也就那么几个名字 大小 类型 创建时间 修改时间等等打开文件并读取内容QFile ,QTextStream...原创 2019-09-26 18:02:44 · 9379 阅读 · 0 评论 -
Qt 相机拍照 QCamera
前言:本篇 主要讲述Qt 开启摄像头进行拍照后续会写视频录制 以及音频录制(也晚上11点了 比较累了)尽请关注效果gif我的摄像头没有问题,gif 录制后 压缩成20color 所以压缩的原因首先 确定你的电脑带有摄像头 或者 外接usb 摄像头在 pro 文件中加入multimedia multimediawidgets多媒体模块 和 多媒体窗口模块QCamerInfo...原创 2019-09-30 09:51:42 · 4422 阅读 · 2 评论 -
QTcpServer 在本地监听失败的原因
在确保IP配置端口都正确的情况下,遇到 在本地listen失败,或者监听成功,客户端始终连接不上的问题而用第三方的网口助手可以成功建立服务器,并与客户端正常通信关闭系统防火墙!!!或者设为防火墙允许软件!!!关闭系统防火墙!!!或者设为防火墙允许软件!!!关闭系统防火墙!!!或者设为防火墙允许软件!!!这是会经常出现的问题 关闭系统防火墙!!!...原创 2019-08-06 16:00:19 · 2962 阅读 · 0 评论 -
Qt 共享内存 QSharedMemory 附带demo
(IPC)进程之间通信 共享内存 也是其中之一的途径什么是共享内存 字面意思就是开辟一块内存,共享使用 我举一个通俗的例子(可能不对) 邻居A和邻居B,他们门口有块地,他们两家都有土地的使用权,我可以种颗树,我可以种个花,大家都可以施肥,乘凉共享内存的优点: 效率高!效率高!效率高!共享内存可以说是最有用的进程间通信方式,也是最快的IPC(进程间通信)形式。两个不同进程A、B共享内存的意思...原创 2019-07-25 19:40:42 · 2657 阅读 · 1 评论 -
Qt与 Js (html) 交互 实现酷炫3D曲面图
先上个图片:Qt 5.6以上的版本用到的是[webenginewidgets]模块5.6之前的版本是[webkitwidgets]模块Qt5.5.1是最后一个支持webkitwidgets的版本开始写代码QWebEngineView* m_webView;m_webView = new QWebEngineView(ui->label);m_webView->...原创 2019-07-12 11:38:32 · 2186 阅读 · 1 评论 -
QChart 各种样式 酷炫 多图 源码(Qt 自带的demo)
Qt 自带的demoChart Themes Example 直接上图片 themewidget.h/******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Con...原创 2018-08-31 15:45:01 · 22256 阅读 · 12 评论