自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

草上爬的博客

专注技术,热爱分享,QQ:302877285

  • 博客(688)
  • 资源 (173)
  • 收藏
  • 关注

原创 Qt5.15.2静态编译 VS2017 with static OpenSSL

Qt 5.15.2静态编译 VS2017 with static OpenSSL

2023-11-26 22:22:38 2472 1

原创 Qt之基于QCustomPlot绘制直方图(Histogram),叠加正态分布曲线

Qt之基于QCustomPlot绘制直方图(Histogram),叠加正态分布曲线高斯分布(Gaussian distribution),又名正态分布(Normal distribution),也称"常态分布",也就是说,在正常的状态下,一般的事物,都会符合这样的分布规律。比如人的身高为一个随机变量,特别高的人比较少,特别矮的也很少,大部分都集中在中等身高。人的智商也是如此,社会精英毕竟少数,大多都是普通人。若随机变量X服从一个位置参数为μ,尺度参数为σ^2的概率分布. 且其概率密度函数为。

2023-10-31 01:14:15 4401 6

原创 C++之重定向stdout到内存

C++之重定向stdout到内存

2023-10-30 21:55:30 1238

原创 Qt基础之三十九:Qt Creator调试技巧

Qt Creator调试技巧一.开始调试(F5)二.调试dll1.Attach to Running Application2.Attach to Running Application3.Start and Debug External Application三.调试源码1.MinGW2.MSVC

2023-10-27 19:07:09 4874

原创 Qt之设置QLineEdit只能输入浮点数

Qt之设置QLineEdit只能输入浮点数

2023-10-25 03:23:25 2558

原创 Qt之彻底解决QSpinBox限定范围无效的问题

Qt之彻底解决QSpinBox限定范围无效的问题

2023-10-25 03:01:12 2509

原创 Qt之实现支持多选的QCombobox

Qt之实现支持多选的QCombobox,完美解决下拉列表存在滚动条时,列表项不显示的问题

2023-10-25 01:47:52 3372

原创 Qt之自定义QStringListModel设置背景色和前景色

QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。需要注意的是在setData方法中,如果数据设置成功,需要发送dataChanged信号,通知各Item调用data方法获取数据。

2023-10-25 01:27:20 3078

原创 C++常用标准算法

算法主要由头文件、、组成。是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历、赋值、修改等等;体积很小,只包括几个在序列上面进行简单数学运算的模板函数;定义了一些模板类。

2023-10-24 20:11:07 1639 1

原创 Qt之自定义事件QEvent

自定义事件有很多应用场景,比如说从第三方库中回调过来的数据,如果要显示到界面上,需要在回调函数中将数据包装成事件发送出来,主线程接收到事件后解析数据并显示。下面是一个从第三方库获取视频帧并绘制到界面的例子。

2023-10-24 16:13:36 2266

原创 C++11新特性之十六:std::tie

为生成pair, c++ 提供了make_pair的快捷操作,相应的,对tuple也提供了make_tuple用于快速创建tuple对象。在c++ 11标准库中,加入了std::tie,在c++ 14中改进,方便使用。其与std::tuple关系密切, 主要目的是方便地使用std::tuple。元组std::tuple可以将不同类型的元素存放在一起,可以理解为std::pair的扩展(pair只能包含两个元素,而tuple可以多个)。因此,std::tie可以用于pair的解包。

2023-10-24 01:03:08 1891

原创 QMap之自定义Key和Value

为什么要自定义QMap的 key和value呢?因为在某些应用场景,基本数据类型的key和value并不能满足要求,比如座位在第几行、第几列,座位上人的姓名、职务;二维坐标系中散点的横坐标、纵坐标,散点的id、result。即key和value是一种多对多的关系。需要注意的是自定义的CustomKey中要重载运算符

2023-10-24 00:05:26 2352

原创 Qt之自定义model读写CSV文件

本文基于QAbstractTableModel实现了一个支持读写CSV文件的TableModel。CSV数据格式虽然很简单,但是网上大多数读写方式其实都是有bug的,没考虑到字段里包含逗号或换行符这种复杂数据的情况。

2023-10-23 23:33:07 2136

原创 Qt基础之三十八:快捷键

一.按钮的快捷键二.菜单项的快捷键1.菜单栏菜单2.快捷菜单三.QShortcut四.快捷键冲突的处理五.全局快捷键

2023-10-22 23:02:00 4448

原创 Qt之使用bitblt抓取bitmap(位图)并转QImage

Qt之使用bitblt抓取bitmap(位图)并转QImage

2023-10-21 11:23:22 2354

翻译 Qt基础之三十七:是否发生复制?浅谈参数在信号-槽中的传递

当信号的参数是对象的常引用,且槽的参数也是对象的常引用,那么这个对象会复制多少次呢?信号和槽的direct和queued连接方式有何不同?如果信号和槽的参数都按值传递,会发生什么变化呢?这个问题通常会在项目的某个时刻(比如说性能优化时)提及,但Qt文档对此只字未提。关于有一个很好的讨论,不过需要读者从所有评论中选择正确的答案。因此,下面让我们系统地讨论参数是如何在信号和槽间传递的。

2023-10-03 15:58:33 4417

原创 Qt基础之三十六:异常处理

本文将介绍如何在Qt中使用try...catch和调试dump文件来处理异常。Qt版本5.12.6。

2023-05-28 10:39:09 8546

原创 Qt优秀开源项目之十八:QtService

QtService是一个用于实现Windows服务或unix守护进程的开源项目源码可以编译成动态库,也可以直接在项目中引用源码源码目录qtservice/examples中包含了三个例子,值得参考。

2023-04-20 22:07:01 5553 1

原创 Qt基础之三十五:Qt中文乱码探索

Qt中文乱码看这一篇就够了先说个小技巧:Qt Creator支持显示源文件编码格式右上角点UTF-8,会弹出“文件编码”对话框我的开发环境是Win10 Qt5.12.6 VS2017,IDE是Qt Creator。

2023-04-07 00:13:12 5442 1

原创 Qt基础之三十四:QTcpSocket和QTcpServer源码分析

QTcpSocket和QTcpServer源码分析

2023-04-03 23:47:20 5210

原创 Qt之设置子菜单的弹出延时

但是真*360安全卫士的托盘菜单却无此问题,而且它的子菜单弹出非常快,几乎无延迟。这就涉及到Qt的事件循环机制了,子菜单实际上是一个popup弹窗,自带事件循环,如果按钮的hover状态被取消前,事件循环就进入到子菜单中,就会出现上述问题。Qt中主菜单中的子菜单并不是立即弹出的,在windows上默认会延时256毫秒再弹出。这样一般情况下不会有问题,但是在定制菜单时可能会出现鼠标移动过快导致按钮hover状态无法自动取消的问题。这里先给出结论:将子菜单的延时设为0后,上述问题解决。

2023-04-02 15:45:28 2648

原创 PS(PhotoShop)调整图片角度

最简单的就是操作菜单:图像->图像旋转->任意角度但是这样并不能一次旋转到位,更专业的做法是先用“标尺工具”在图片上画一条线,这条线与水平方向的夹角就是想要旋转的角度。我这里画的线与马的眼睛平行,这样旋转后马就是正的了。然后操作菜单:图像->图像旋转->任意角度,此时弹窗中的角度就不需要自己输入了,直接点确定即可。

2023-03-25 22:46:49 2562 3

原创 Qt之实现类似软件安装时的新功能介绍界面

在软件安装时,一般会轮播软件的新功能,安装后,如果还想查看这些新功能该怎么办呢,我们可以把这个介绍新新功能的小应用集成到软件的“帮助”菜单中,比起纯黑文字的无趣介绍,图文方式的呈现会生动得多。最近在看《赘婿》,借几张图过来用用。

2023-03-24 13:33:36 4311

原创 Qt优秀开源项目之十七:QtPromise

QtPromise是规范的Qt/C++实现。该规范的译文见附录。QtPromise基于Qt5.6及以上版本,当然也包括Qt6。,每个API都提供了demo。Promise是一种异步编程的解决方案,可以替代传统的解决方案——回调函数和事件。Promise的三个特点:☆对象的状态不受外界影响。☆一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。☆以同步的方式调用异步,通过返回新的promise来实现then链式调用。

2023-03-21 20:37:01 4992 2

原创 Qt基础之三十三:海量网络数据实时显示

开发中我们可能会遇到接收的网络数据来不及显示的问题。最基础的做法是限制UI中加载的数据行数,这样一来可以防止内存一直涨,二来数据刷新非常快,加载再多也来不及看。此时UI能看到数据当前处理到什么阶段就行,实时性更加重要,要做数据分析的话还得查看日志文件。这里给出UDP+QListView和TCP+QPlainTexEdit两种实现方案。

2023-03-19 11:34:11 6471 2

原创 Qt基础之三十二:浅谈qDebug()

我们先来看看qDebug()的基本用法,再去研究qDebug的实现原理。除了qDebug(),Qt还提供了qInfo()、qWarning()、qCritical()方便我们打印不同种类的信息,而qFatal()直接结束程序,后面代码不再执行,用的较少。在Unix/X11和macOS,调试信息会打印到stderr;在Windows,如果是控制台程序,调试信息会输出到控制台,否则会输出到调试器(debugger)—比如说Qt Creator的应用程序输出(Application Output)窗口。

2023-03-18 09:56:48 6600

原创 Qt之调用内置的压缩/解压工具

​之前在Qt中直接调用过zlib,详见:Qt之调用zlib压缩与解压缩功能没想到Qt还有内置的压缩/解压工具:QZipWriter和QZipReader

2023-03-17 12:19:21 2765

原创 Qt基础之三十一:Qt网络编程(TCP&UDP)

Qt网络模块(Network)提供了编写TCP/IP客户端和服务器的类。该模块不仅提供了低级(low-level)类,如QTcpSocket、QTcpServer和QUdpSocket,还提供了高级(hight-level)类,如QNetworkRequest、QNetworkReply和QNetworkAccessManager。

2023-03-14 22:21:04 5655

原创 Qt之高仿QQ系统设置界面

QQ或360安全卫士的设置界面都是非常有特点的,所有的配置项都在一个垂直的ScrollArea中,但是又能通过左侧的导航栏点击定位。这样做的好处是既方便查看指定配置项,又方便查看所有配置项。

2023-03-11 08:28:23 6903 4

原创 Qt中调用gtest进行单元测试及生成覆盖率报告

我下载的是1.12.1,这是最后一个支持C++11的版本。首先编译gtest,在windows上的编译方式和编译gRPC一模一样,详见,编译完了会生成几个静态库,如下图所示本文主要用到了libgtest.a下载,默认安装到C:\msys64,安装后修改安装目录下的etc/profile文件,在最后一行添加Qt所用的mingw版本,如下图所示否则在生成覆盖率报告的时候会出现如下提示信息,导致生成失败然后下载。

2023-03-05 14:28:59 3505

原创 Qt基础之三十:百万级任务并发处理

体现线程快的核心是延迟和吞吐量,延迟就是每个发送请求到收到响应所消耗的时间,延迟越短,程序越快,性能也越好。对于CPU密集型计算多线程本质上是提升CPU的使用率,所以对一个4核的CPU来说,理论上创建4个线程就可以了。我们都知道在进行I/O操作时,CPU是空闲状态,所以我们要最大化的利用CPU,不能让其是空闲状态。如图所示:CPU 在 A、B、C 三个线程之间切换,对于线程 A,当 CPU 从 B、C 切换回来时,线程 A 正好执行完 I/O 操作。CPU和I/O的耗时如果是1:1那开2个线程是合适的。

2023-02-28 23:03:17 4873 1

原创 Windows查看占用文件的进程

Windows查看占用文件的进程

2023-02-28 22:18:32 8723

原创 Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用

无意中从网络获取一份俄罗斯方块源码,基于图形视图框架(Graphics View Framework)实现的。当然源码的核心从来都不是界面,而是方块的移动、变形和消除等算法。源码非常完整,注释详细,经改动后已能在Qt5中运行,下面是运行效果,背景音乐和音效也是有的。

2023-02-21 22:45:40 5393 1

原创 两个不错的LeeCode专栏

两个不错的LeeCode专栏:LeetCode 热题 HOT 100LeetCode 精选 TOP 面试题

2023-02-13 12:52:48 1588 1

原创 Qt优秀开源项目之十六:SQLite数据库管理系统—SQLiteStudio

SQLiteStudio是一款开源、跨平台(Windows、Linux和MacOS)的SQLite数据库管理系统。当然我这里只是简单的测试了一下。SQLiteStuido的功能很强大,要熟练使用,还得多摸索才行。不想编译的话,可以去官网下载安装包,当前最新的版本是3.4.3,安装的时候居然可以选择简体中文。下图是数据库添加页面,选择刚才的test.db,"名称"会自动显示。通过菜单:数据库->添加数据库。通过工具栏:下图中的红圈所示。下图是数据表中的数据。

2023-02-12 12:04:07 4583 1

原创 Qt基础之二十六:Qt绘图系统(Paint System)

通过从QPaintDevice类派生并重新实现QPaintDevice:paintEngine()函数,即可添加一个新的绘图设备。在paintEngine中要告知QPainter应该使用哪种绘图引擎在该设备上绘制。要真正能够在自定义绘图设备上绘制,此绘图引擎必须是从QPaintEngine类派生的自定义绘图引擎。

2023-02-11 23:15:13 5778

原创 C++11实现的线程池:ThreadPool

github地址:https://github.com/progschj/ThreadPool关于其使用,详见:C++11并发学习之六:线程池的实现

2023-02-04 14:24:07 1431

原创 C++之监控文件是否被修改

软件开发过程中经常会用到配置文件,某些应用场景要求在软件运行时动态修改配置文件,此时就需要监控配置文件是否被修改,如果修改了,重新加载。这里config.txt和可执行文件同一目录,每次修改config.txt,就会打印File changed。

2023-02-04 14:11:22 2677 3

原创 Qt基础之二十三:反射(Reflection)

不同于boost这样的模板库,Qt利用自带的Meta-Object Compiler(moc)来生成额外的C++代码,这些代码实现了Qt程序所必须的元数据对象,可以说Qt是基于C++的一种扩展。反射是指程序在运行时动态获取对象属性与方法的一种机制,即编译器需要将类型信息(属性类型与偏移地址以及成员函数的地址等信息)编译到程序文件中,当程序运行时将这些信息加载到内存中去,做到运行时只根据对象的地址或引用就可以获取到对象的类型信息,从而利用这些信息达到修改或重建对象的目标。☆在运行时调用对象的方法;

2023-01-25 13:26:33 9291

原创 Qt之基于Graphics View实现Mesh网络拓扑图

Mesh是一种多节点、无中心、自组织的无线多跳通信网络,也就是网状结构网络。网络中所有的节点都互相连接,每个节点拥有多条连接通道,所有的节点之间形成一个整体的网络。

2023-01-17 22:30:33 7020 38

Qt高仿QQ截图

使用Qt高仿QQ截图,实现了画图形、画线、画刷、写文字、重做等功能

2017-11-27

20种数据结构和算法的C++实现

20种数据结构和算法的C++实现,详见博客:http://blog.csdn.net/caoshangpa/article/details/78557334

2017-11-17

Qt下用QSplitter实现滑动窗口

Qt下用QSplitter实现滑动窗口,详见博客:http://blog.csdn.net/caoshangpa/article/details/78549788

2017-11-16

Qt实现窗体缩放

用Qt实现的跨平台窗体缩放,详见博客:http://blog.csdn.net/caoshangpa/article/details/78543165

2017-11-15

仿360鼠标拖动图片切换效果

博客中发现有作者写的仿360的代码,觉得其中图片滑动的效果很有意思,特提取其中的代码。并加上类似mac的画面移动的动画效果。

2017-11-15

Qt OpenGL+Graphics-View

示例+源码,QtOpenGL以及Graphics-View框架整合的例子

2017-11-14

Qt之调用zlib

Qt调用zlib的例子,详见博文:http://blog.csdn.net/caoshangpa/article/details/78528930

2017-11-14

Qt Quick实现九宫格锁屏视图

九宫格划指锁屏视图 Lisence: MIT, 请保留本文档说明 Author: surfsky.cnblogs.com 2015-02

2017-11-14

QML实现图像处理,包括浮雕、锐化等效果

使用 Qt Quick 实现的图像处理实例,支持黑白、锐化、底片、柔化、灰度、浮雕等特效。展示 Qt 中 QML 与 C++ 混合编程技术、多线程、自定义事件等关键技术。 原作者:foruok

2017-11-14

Qt插件调用实例

实例讲解Qt如何实现插件的调用,详见博客:http://blog.csdn.net/caoshangpa/article/details/78506322

2017-11-11

重构-改善既有代码的设计 高清pdf 带书签

重构-改善既有代码的设计 高清pdf 带书签

2017-07-16

程序员必读之软件架构 高清pdf 带书签

程序员必读之软件架构 高清pdf 带书签

2017-07-16

c++获取OpengL版本号的两种方法

源码,没啥说的

2017-06-02

WebRTC学习之四:最简单的语音聊天

使用WebRTC实现了最简单的语言聊天 详见博客:http://blog.csdn.net/caoshangpa/article/details/53889057

2017-01-10

Qt动画效果展示

展示了Qt动画的使用,效果非常炫 详见博客:http://blog.csdn.net/caoshangpa/article/details/53964789

2017-01-01

WebRTC学习之三:录音和播放

使用WebRTC C++实现的录音与播放功能,界面用的Qt。 详见博客:http://blog.csdn.net/caoshangpa/article/details/53446916

2016-12-26

VC实现单文档切分窗口

VC实现单文档切分窗口

2016-12-03

VC通过DirectShow进行视频预览和捕获

VC通过DirectShow进行视频预览和捕获

2016-12-03

VC局域网象棋对战(毕业设计)

VC局域网象棋对战(毕业设计),含设计文档

2016-12-03

PDF密码移除工具

PDF密码移除工具,非常好用

2016-12-03

Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),说起Qt,就不能避开国际化,国际化步骤: 如果Qt程序中有QObject::tr()包裹的字符串,对这个应用程序的翻译主要包含三步: ①.运行lupdate工具从C++源代码中提取要翻译的文本,这时会生成一个.ts文件,这个文件是XML格式的; ②.在Qt Linguist中打开.ts文件,并完成翻译工作; ③.运行lrelease工具从.ts文件中获得.qm文件,它是一个二进制文件。这里的.ts文件是供翻译人员使用的,而在程序运行时只需要使用.qm文件,这两个文件都是与平台无关的。 详见博客:https://blog.csdn.net/caoshangpa/article/details/135319397

2023-12-31

Qt之实现遮罩窗口,实现了窗口遮罩效果

参考链接:https://blog.csdn.net/caoshangpa/article/details/53053409

2022-07-24

QHVlcPlayer.rar

Qt+libVLC,使用QWidget和QOpenGLWidget两种方式渲染:详见博客https://blog.csdn.net/caoshangpa/article/details/114182802

2021-02-27

Qt+libVLC+QWidget渲染

从libVLC中抽帧,然后用QWidget渲染,详见博客:https://blog.csdn.net/caoshangpa/article/details/114171203

2021-02-27

Qt调用libVLC实现播放器

可以播放本地文件和网络url,详见博客:https://blog.csdn.net/caoshangpa/article/details/114156273

2021-02-26

TestUI.rar

Qt换肤详见博客: https://blog.csdn.net/caoshangpa/article/details/51476644 https://blog.csdn.net/caoshangpa/article/details/51527121

2021-02-09

QHOpenGLPlayer.rar

使用QOpenGLWidget渲染yuv420p,详见博客:https://blog.csdn.net/caoshangpa/article/details/112448207

2021-01-10

Qt使用SDL2\D3D渲染YUV420p

Qt使用SDL2\D3D渲染YUV420p

2021-01-09

基于Qt和SDL2播放PCM

基于Qt和SDL2播放PCM,参考博客:https://blog.csdn.net/caoshangpa/article/details/112226484

2021-01-05

QML实现点赞送礼物效果

Qt5 QML实现,详见博客:https://blog.csdn.net/caoshangpa/article/details/112195530

2021-01-04

Qt5版NeHe OpenGL教程6-10

Qt5版Nehe OpenGL教程,第六课到第十课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80323712

2018-05-17

Qt5版Nehe OpenGL教程1-5

Qt5版Nehe OpenGL教程,第一课到第五课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80270855

2018-05-14

Qt4版NeHe OpenGL教程 源码

Qt4版NeHe OpenGL教程 源码,NeHe的教程虽然时间久远,但是仍然是入门的好教程,至少对三维概念的了解很有帮助。

2018-05-12

Qt调用OpenGL API实现彩色旋转立方体

详见博客:https://blog.csdn.net/caoshangpa/article/details/80258907 源码中包含了glu和glut等库

2018-05-09

串口调试助手

串口调试助手,自己用的,还不错。可以设置16进制发送和接收。

2018-03-16

MyTcpClient

Qt实现的TCP客户端,用于和State Thread库的Server例子进行调试。详见博客:http://blog.csdn.net/caoshangpa/article/details/79582873

2018-03-16

Boost.Asio C++ Network Programming随书源码

Boost.Asio C++ Network Programming随书源码,书的下载链接:http://download.csdn.net/download/caoshangpa/10229882

2018-01-29

Boost.Asio C++ Network Programming(高清,带书签,可复制)

Boost.Asio C++ Network Programming(高清,带书签,可复制)

2018-01-29

Effective Modern C++ 英文原版(带书签)

Effective Modern C++ 英文原版(带书签),稍微有点英语基础就可以看懂,C++11和C++14学习必备

2018-01-27

Qt之绘制灵动的小鱼

使用Qt绘制的小鱼,用到了很多算法,包括贝塞尔曲线等,非常值得学习借鉴

2018-01-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除