
C/C++
文章平均质量分 71
沙振宇
将来的你一定会感谢现在奋斗的你。当你的才华还撑不起你的野心时,那你就应该静下心来学习。
展开
-
【Qt 学习之路】使用 cmake 在Windows上 编译 ZeroMQ
前几篇文章讲述了ZeroMQ是什么、网络通信,和如何在Qt上使用现成的ZeroMQ的库,本篇文章中主要讲述如何使用 cmake在 Windows上编译ZeroMQ。下载和安装这里不讲了,在之前的文章中讲述的已经很详细了,想了解的可以看以下相关资料。相关资料:链接地址链接地址。原创 2024-02-28 18:37:27 · 1988 阅读 · 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 评论 -
【C/C++】轻量级跨平台 开源串口库 CSerialPort
Qt 的QSerialPort 已经是跨平台的解决方案,但Qt开发后端需要 Qt 的依赖库。为了使 C/C++ 开发的前后端不依赖 Ros、Qt 等工具,找到了一款还不错的开源库CSerialPort。它是一个基于C/C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写,同时还支持C#, Java, Python, Node.js等。当前版本:4.3.0.230215 on 2023-02-15。原创 2024-01-04 23:15:00 · 4509 阅读 · 0 评论 -
【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 打印信息 输出到文件中的 两种方式
/ 加锁break;break;break;break;default:// F文件信息L行数// 解锁// 加锁break;break;break;break;default:// 设置输出信息格式// F文件L行数// 输出信息至文件中(读写、追加形式)// 解锁。原创 2017-11-30 14:01:26 · 14560 阅读 · 1 评论 -
【Qt学习之路】Qt进度条显示拷贝文件夹和文件进度
最近在研究Qt的进度条显示,做了个示例,供大家参考。原创 2017-12-08 15:53:24 · 3671 阅读 · 1 评论 -
【C++】if else与三元运算符的耗时对比
条件运算符强大而独特,它提供了一种表达简单if-else语句的简写方法。该运算符由问号(?表达式?表达式 : 表达式;原创 2018-02-01 11:28:56 · 5977 阅读 · 3 评论 -
【Qt 学习之路】QTcpSocket发送图片(或大文件)Demo
先看一下效果:思路:发图片、大文件与发短字符不大一样。1、文件和图片通过TCP可能一次发不过去,可能要发很多次。所以我们在发送文件、数据、以及文字最好带上文件的大小。2、图片转换成文件流的形式,这个Demo是转成base64加密流核心代码:1、tcp客户端与服务端的代码这里就不贴了,以前贴过,可以看我以前的帖子。这里贴一下思路代码:发送图片端:原创 2017-10-20 16:07:03 · 11423 阅读 · 1 评论 -
【Qt 学习之路】Qt/C++调用微软接口
调用微软接口杀死进程有时遇到特殊杀死不了的进程,我们还是要调用系统接口的,下面我将调用微软接口杀死进程代码贴一下:#include<Windows.h>#include<tlhelp32.h>staticboolwaitCloseProgram(QStringproName){#ifdefQ_OS_WINQString...原创 2016-09-02 11:30:27 · 3110 阅读 · 1 评论 -
【Qt 学习之路】比较QMap、QHash(解决QMap和QList混合的坑)
QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash。QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMap。由上面Demo可以看出,当key值是QString型时,QMap和QHash输出的是一样的。这两个是Qt中比较常见的容器。原创 2016-11-22 15:21:01 · 4914 阅读 · 1 评论 -
【Qt 学习之路】Qt调用opencv读摄像头图像
OpenCV也和Qt一样,有很多版本。有各种平台版本,Android、ios、Windows、Linux等。同样在Windows上,也分vc10、vc11、vc12版。做一个简单的demo,用Qt调用opencv摄像头接口显示当前摄像头画面并拍照。开发环境:操作系统版本:Windows7sp1 64位Qt版本:5.3.2 msvc2010 32bitopencv版本:2.4.1...原创 2016-09-14 17:27:07 · 3428 阅读 · 1 评论 -
【Qt 学习之路】Qt添加Halcon图像灰化效果
Qt调用Halcon13.0机器视觉算法包Qt:5.6.1 MSVC2013 32bitHalcon版本:13.0(注意,这里最好是正版,或者已经破译的版本,否则会引起很多意料之外的问题)1、在pro文件中添加必要的库和必要的头文件INCLUDEPATH += $$PWD/Halcon/IncludeINCLUDEPATH += $$PWD/Halcon/Include/halc...原创 2017-09-15 19:19:37 · 11381 阅读 · 10 评论 -
【Qt 学习之路】Qt+VLC播放多个视频的Demo
【代码】【Qt 学习之路】Qt+VLC播放多个视频的Demo。原创 2017-11-23 14:46:56 · 8432 阅读 · 17 评论 -
【Qt 学习之路】Qt让桌面图标跑起来
系统不会按照预期的图标位置移动图标。比如说:(10,10),系统并不会移动图标到这个位置,而是移动图标到最近的网格布局的位置中。5、每次跑动时,删除QList最后一项,然后在QList首项前插入我们算好的预跑坐标。~~ 如有更好的办法,欢迎提出来,大家一起讨论 ~~6、按照QList中的数据更新所有图标位置。4、调用WinAPI把图标移动到指定位置。3、把各个图标位置装到QList容器中。2、让各个图标按照我们想要的顺序排列。1、初始化各个图标位置。#实现要关注以下几点。原创 2018-05-03 17:32:39 · 1380 阅读 · 1 评论 -
【Qt 学习之路】Qt5气泡式聊天框——QListWidget+QPainter实现
由于最近的项目需要,做了些相关IM的工作。所以聊天框也是必不可少的一部分。聊天框的制作分很多种,本文以QListWidget+QPainter绘制的Item做了一个Demo。该Demo只是做一个示例,代码已公布如下,需要的拿去!原创 2018-08-08 11:57:33 · 22091 阅读 · 52 评论 -
【Qt 学习之路】C++ 常用命名法与书写规范
3、类型前缀:bool--b,char--ch,int--n,long--l,float-f,double--d,指针-p,enum-e,数组--g。1、操作系统风格:Windows风格--GetWidth()、Linux风格--get_width()(注:Qt风格--getWidth())1、if、for、switch等关键字独占一行,后面跟半个“{”,作用域结束用“}”,作用域内仅一条语句也这么写。我们要“吸百家之长,圆我代。1、注释、在代码的上边、右边、或结束位置,函数的注释写在头文件。原创 2018-06-27 18:27:55 · 11055 阅读 · 1 评论 -
【Qt 学习之路】Qt以Base64加密作为基础实现3种加解密方式(包含中文处理)
Qt已经有了最基本的toBase64加密算法,同时提供fromBase64解密算法。在普通Base64加解密算法基础上,用异或加解密(钥匙加解密)算法进行进一步优化。在普通Base64加解密算法基础上,用大小写加解密算法进行进一步优化。本文提供三种方式来加密解密,都是用Qt本身提供的类,没用外接库。原创 2018-08-23 10:25:43 · 11109 阅读 · 10 评论 -
【编程语言】各个流行语言优缺点对比及其适用场景
TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员、课程和第三方厂商的数量。C更适合广泛应用于计算机的底层开发,例如系统软件:编译器,JVM,驱动,操作系统内核,还有各种嵌入式软件,固件等。目前很多人工智能的算法都是用Python来实现的,在AI的领域Python的地位还是很高的。Java的热度一直让它处于编程语言排行榜首位的位置的面向对象的静态语言。简称Go语言,它是一个有动态语言感觉的静态语言,写起来的效率很高。C语言是一门面向过程的静态语言。原创 2019-02-02 14:52:21 · 27866 阅读 · 3 评论 -
【设计模式】单例模式 C++(两种方式)、Python3单例实例
如果单例对象构造十分耗时或者占用很多资源,比如加载插件啊, 初始化网络连接啊,读取文件啊等等,而有可能该对象程序运行时不会用到,那么也要在程序一开始就进行初始化,就会导致程序启动时非常的缓慢。所以这种情况使用懒汉模式(延迟加载)更好。注:如果这个单例对象在多线程高并发环境下频繁使用,性能要求较高,那么显然使用饿汉模式来避免资源竞争,提高响应速度更好。就是说不管你将来用不用,程序启动时就创建一个唯一的实例对象。原创 2019-06-26 18:17:42 · 39505 阅读 · 0 评论 -
【Qt 学习之路】Qt 删除文件或文件夹到回收站(详解)
写这篇文章之前,已经看过很多类似的文章,都没有实质性的解决这个问题。原创 2020-11-23 20:18:17 · 4943 阅读 · 8 评论 -
【Qt 学习之路】调用工业相机Basler的SDK使用示例
由于公司采购的AVT相机不足,需要用Basler相机来弥补,所以我也了解了一下Basler这款相机的SDK。由于Basler这边的相机提供的没有提供Qt的示例,所以我做一个分享出来。本篇的Demo采用的是工业黑白相机。工业应用中,如果我们要处理的是与图像颜色有关,那么我们最好采用彩色工业相机;如果不是,那么我们最好选用黑白工业相机,因为在同样分辨率下的工业相机,黑白工业教学精度比彩色工业相机高,尤其是在看图像边缘的时候,黑白工业相机的效果更好。原创 2017-12-19 16:56:24 · 74858 阅读 · 148 评论 -
【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 评论 -
【C++】面试常用知识点总结——基础篇
三次握手的最主要目的是确认双方都有收发数据的能力。三次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。第一次: A发给B。证明A有发消息的能力。第二次: B收到并发消息给A。证明B有收消息,并且有发消息的能力。第三次: A收到B消息。证明A有收消息的能力。二次握手达不到目的,四次多余。双方关闭连接要经过双方都同意。原创 2019-07-15 18:13:04 · 58087 阅读 · 11 评论