自定义博客皮肤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)
  • 收藏
  • 关注

原创 Qt之使用Qt内置图标

Qt内置图标封装在QStyle中,共七十多个图标,可以直接拿来用,能应付不少简单程序需求,不用自己去找图标并添加到资源文件了。下面是内置图标的枚举定义:QStyle提供了QIcon standardIcon()函数用于将内置图标转换为QIcon,同时提供了QPixmap standardPixmap()函数用于将内置图标转换为QPixmap。这两个函数的第一个参数都是上面贴出的枚举值。

2024-02-04 20:10:19 3360 96

原创 Qt6入门教程 15:QRadioButton

QRadioButton控件提供了一个带有文本标签的单选按钮。QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选按钮运行用户多选一,也就是说,在一组单选按钮中,每次只有一个能选中,如果用户选择了另一个,那么之前那个就会切换到未选中状态。单选按钮默认开启自动互斥(autoExclusive)。如果启用了自动互斥,属于同一个父部件的单选按钮的行为就和属于一个互斥按钮组的一样。

2024-02-02 01:33:31 1620 74

原创 Qt6入门教程 14:QToolButton

QToolButton可以提供一个弹出菜单,使用setMenu()来进行设置。通过setPopupMode()来设置菜单的弹出模式,缺省模式是DelayedPopupMode,这个特征通常用于网页浏览器的“后退”按钮,在按下按钮一段时间后,会弹出一个可以跳转的页面列表,默认延迟600毫秒,可以用QStyle::SH_ToolButton_PopupDelay进行调整。设置默认的QAction,如果有一个默认的action,该action则会定义QToolButton的文本、图标、TooTip等按钮的属性。

2024-01-31 08:17:17 1725 56

原创 Qt6入门教程 13:QPushButton

QPushButton是与QAbstractButton最接近的完全体按钮,它具备QAbstractButton的所有特性,并且支持设置菜单。

2024-01-29 00:48:42 1253 57

原创 Qt6入门教程 12:QAbstractButton

继承QAbstractButton,你至少得重新实现paintEvent()来绘制按钮的外形、文本和图标。通常也建议重新实现sizeHint(),某些情况下还得重新实现hitButton()(判断鼠标是否在按钮区域内)。下面的代码中集成QAbstractButton实现了MyButton,重新实现了paintEvent。在paintEvent中绘制文本颜色为白色,按钮底色为蓝色(鼠标按下或按钮选中时为红色)。代码中涉及的绘图和布局知识后面会单独介绍。

2024-01-28 12:51:47 1720 24

原创 Qt6入门教程 11:父子对象关系

Qt的对象模型提供了一种Qt对象之间的父子关系,当很多个对象都按一定次序建立起来这种父子关系的时候,就组织成了一颗树。当delete一个父对象的时候,Qt的对象模型机制保证了会自动的把它的所有子对象,以及孙对象,等等,全部delete,从而保证不会有内存泄漏的情况发生。在每一个Qt对象中,都有一个链表,这个链表保存有它所有子对象的指针。当创建一个新的Qt对象的时候,如果把另外一个Qt对象指定为这个对象的父对象,那么父对象就会在它的子对象链表中加入这个子对象的指针。

2024-01-25 22:07:38 1797 106

原创 Qt6入门教程 10:菜单栏、工具栏和状态栏

用Qt Creator新建基于QMainWindow的项目时,会自带菜单栏和状态栏。还是以前面的HelloWorld项目为例,通过Qt Designer和纯手写两种方式来添加或移除菜单栏、工具栏和状态栏。

2024-01-23 19:38:03 3086 27

原创 Qt6入门教程 9:QWidget、QMainWindow和QDialog

在用Qt Creator创建Qt Widgets项目时,会默认提供三种基类以供选择,它们分别是QWidget、QMainWIndow和QDialog,其中QMainWindow和QDialog的基类都是QWidget。

2024-01-21 23:35:15 2084 52

原创 QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架

2024-01-19 08:49:38 3116 174

原创 Qt6入门教程 8:信号和槽机制(连接方式)

信号和槽机制(连接方式),即五个参数,共有五种,分别是Qt::AutoConnection、Qt::DirectConnection、Qt::DirectConnection、Qt::QueuedConnection、Qt::BlockingQueuedConnection和Qt::UniqueConnection

2024-01-17 20:30:44 1949 28

原创 Qt6入门教程 7:信号和槽机制(原理和优缺点)

信号和槽用于对象之间的通信。信号和槽机制是Qt的核心机制,也是Qt不同于其他框架的最突出的特征。Qt的元对象系统使信号和槽成为可能。本文将介绍其原理和优缺点。

2024-01-17 00:54:41 1548 17

原创 Qt6入门教程 6:Qt元对象系统

Qt中的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。元对象系统是基于以下3个条件的:●该类必须继承自QObject类;●必须在类的私有声明区声明Q_OBJECT宏(在类定义时,如果没有指定public或者private,则默认为private);●元对象编译器Meta-Object Compiler(moc),为QObject的子类实现元对象特性提供必要的代码。

2024-01-15 22:44:55 1794 29

原创 Qat++,轻量级开源C++ Web框架

​Oat++是一个面向C++的现代Web框架官网地址:https://oatpp.iogithub地址:https://github.com/oatpp/oatppOat++具有如下特性:●随处运行Oat++没有任何依赖性,可以很容易地移植到各种支持的平台上(Linux、BSD、MacOS、OpenWRT、Windows)。●构建健壮的api使用Oat++的Simple-API,很容易就能构建出灵活而健壮的High-Level API。●高并发使用Oat++的Async-API,可以在单

2024-01-14 16:01:27 5714 150

原创 Qt6入门教程 5:添加资源和应用程序图标

Qt6入门教程 5:添加资源和应用程序图标。Qt资源系统是一种平台无关的机制,它将二进制文件存储到可执行文件中。当你的程序需要一系列文件(图标、翻译文件等等),而又不想这些文件有丢失的风险时,这种机制是非常给力的。前面创建了一个最简单的HelloWorld程序,略显简陋,下面给它添加标题栏图标和exe图标美化一下。

2024-01-14 15:59:20 1474 4

原创 C++程序员必备的面试技巧

平时可以搜集一些大厂的面试题或笔试题,放在CSDN博客上,没事就翻一下,个人觉得博客是比书更好的信息载体,比如说可以是彩色的图片、可以用动图等。●善于解决问题:在面试中,经常会遇到一些难题或者意想不到的问题,这时候要保持冷静,运用自己的知识和经验,找出解决问题的方法。●注意沟通技巧:在面试中,要注意和面试官的沟通技巧,要能够清晰地表达自己的思路和想法,同时也要认真听取面试官的意见和建议。●展示自己的实际经验:在面试中,可以通过举例说明自己曾经解决过的问题,或者展示自己的项目经验,来证明自己的实力和经验。

2024-01-12 00:10:18 1522 41

原创 Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库

QSkinny库基于Qt Graphic View和Qt/Quick中少量的核心类。它提供了一组轻量级控件,可以在C++或QML中使用这些控件。QSkinny默认是启用硬件加速的,非常适合嵌入式设备,目前已经应用于大量汽车GUI的代码实现中。正如预期的那样,它有良好的启动性能和低内存占用率。QSkinny能在支持Qt/Quick的所有平台上运行,但目前只在Linux上得到了充分的测试。理论上支持所有Qt>=5.15的版本,推荐使用下面这三个版本:●Qt 5.15。

2024-01-11 23:33:58 4398 38

原创 QML实现的图片浏览器

QML实现的图片浏览器,功能包括:●悬浮工具栏●支持图片缩放、旋转、还原、旋转、拖动。●拖动图片时,释放鼠标图片会惯性滑动。●支持左右翻页查看文件夹中的图片。●支持保存图片至本地。

2024-01-11 02:01:50 2506 93

原创 Qt之有趣的数字钟

Qt之有趣的数字钟:基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。

2024-01-09 08:30:23 1987 55

原创 Qt优秀开源项目之二十:RedPanda-CPP(小熊猫C++)

RedPanda-CPP(小熊猫C++)是跨平台、轻量易用的开源C/C++集成开发环境。和经典的Dev-C++ 5.11、新的Embarcadero Dev-C++ 6相比,无论在用户界面还是功能方面都有了很大的改进,在编译使用手感上已经可以和vs code相当,而运行占用的资源比后者要少得多。

2024-01-07 23:41:29 6461 37

原创 Qt6入门教程 4:Qt Creator常用技巧

在上一篇中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。Qt Creator启动后默认显示欢迎页面创建项目已经用过了,打开项目也很简单,就是打开一个已经存在的项目。项目历史记录非常有用,能快速打开最近使用过的项目。会话记录及管理不知道是干啥的,平时也用不到。Get Started、示例和教程一看就是些学习资料,不过都是英文的,搭配百度翻译自学效率更高哦。编译、运行及调试在上篇中已做介绍。

2024-01-07 18:15:29 2108 48

原创 Qt6入门教程 3:创建Hello World项目

程序员的职业生涯都是从一声问候开始的,我们的第一个Qt项目也是HelloWorld首先要说明的是,IDE不一定要用Qt Creator,用Visual Studio、VSCode、CLion也可以搭建Qt开发环境,它们都相应的插件来支持Qt开发。当然这些IDE没有高低贵贱之分,纯属个人习惯而已,我平时就是Qt Creator做开发的,而且作为Qt教程,不用官方提供的开发工具来演示,也不太合适啊。Qt 6.6.1自带的Qt Creator版本是12.0.1,打开后默认显示欢迎界面。

2024-01-06 19:28:48 1864 36

原创 Qt6入门教程 2:Qt6下载与安装

Qt6入门教程 2:Qt6下载与安装

2024-01-06 01:36:11 3194 40

原创 Qt之设置QLabel的背景色和前景色

Qt之设置QLabel的背景色和前景色:方法有两种,一种是使用调色板,一种是使用样式表。

2024-01-03 18:21:09 3663 40

原创 Qt之QPainter绘制浪漫星空(快来许愿吧)

前几天发现几篇关于Python的博文,里面不是放烟花(Python烟花秀),就是献爱心(Python跳动的爱心)。以前学Python的时候的时候关于它的简介还是这样的:Python是一种高级编程语言,可以应用于爬虫、大数据、人工智能等方面。没想到Python在GUI方面也这么强大,好在Qt也不怂,,效果不逞多让。还有一篇,感觉不错,用QPainter复刻了一下,代码量和Python版本差不多。

2024-01-03 00:04:24 2382 15

原创 Qt基础之四十五:Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),这种奇葩的缩写方式,让我想起了NBA球星“字母哥”。下面看下Qt实现的动态语言切换效果。

2023-12-31 20:56:04 3368 13

原创 Qt基础之四十三:Qt智能指针(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)

Qt智能指针(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)

2023-12-30 00:10:13 2521 1

原创 Qt之自定义分页(翻页)控件

Qt之自定义分页(翻页)控件:当数据量较大时,分页显示是个不错的选择。这里用百家姓来演示分页效果,包括首页、上一页、下一页、尾页和跳转。

2023-12-27 22:17:04 2002 2

原创 Qt之判断一个点是否在多边形内部(射线法)

以被测点Q为端点,向任意方向作射线(一般水平向右作射线),统计该射线与多边形的交点数。其次,对多边形的顶点和射线相交的情况,如果该顶点是其所属的边上纵坐标较大的顶点,则计数,否则忽略该点;最后,对于Q在多边形边上的情形,直接可以判断Q属于多边形。在图A中,射线与多边形的顶点相交,这时交点只能计算一个;在图B中,射线与多边形顶点的交点不应被计算;在图C中,射线与多边形的一条边重合,这条边应该被忽略不计。为了统一起见,射线可设定为水平向右,设点P的纵坐标与Q相同,P的横坐标为一大的整数,则可用QP代替射线。

2023-12-20 02:06:10 2618

原创 Qt之使用QListView加载相册(富文本ToolTip)

Qt之使用QListView加载相册(富文本ToolTip):如果item的显示效果达不到要求,那么就自定义delegate。

2023-12-18 11:37:26 2533

原创 Qt基础之四十二:QMap、QHash的实现原理和性能对比

QMap、QHash的实现原理和性能对比:红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。红黑树为了保证其最长路径中节点个数不会超过最短路径节点个数的两倍,具有以下五个特性:(1)每个结点不是红色就是黑色(2)根节点是黑色的(3)如果一个节点是红色的,则它的两个孩子结点是黑色的。

2023-12-15 18:56:50 4500

原创 C++使用回调函数的两种方式

C++之使用回调函数的两种方式:1.回调函数,2.std::bind和std::function

2023-12-15 18:38:10 1454

原创 Qt之自定义QToolTip,去掉显示动画和隐藏延时

先来看看Qt原生QToolTip的缺点:1.当提示内容无变化时,弹窗无法移动。只能先传个空字符串强制弹窗隐藏,然后在新位置再传个字符串。2.默认显示10多秒才消失,当然这个时间是可以设置的,但是如果我想一直显示呢?总不能设置一个超级大的时间吧。3.鼠标移出控件后(调用QToolTip::showText时传入了控件指针)默认300毫秒弹窗才隐藏。而且这个时间没法设置,如果想立即隐藏就没办法了。

2023-12-12 22:04:44 2638

原创 C++写文件时主动刷新磁盘文件大小

C++写文件时主动刷新磁盘文件大小

2023-12-12 21:48:52 1328

原创 Qt之实现文字滚动效果

Qt之实现文字滚动效果

2023-12-09 20:47:13 2490

原创 Qt优秀开源项目之十九:跨平台记事本Notes

Qt实现的跨平台记事本Notes1.完全基于Qt和C++2.完全开源和跨平台(Linux、macOS、Windows)3.运行速度快,界面美如画4.支持Markdown5.支持使用嵌套文件夹和通用标签分层组织文档6.支持主题设置,在浅色、深色和深褐色之间切换7.丰富的快捷键操作,这个一言难尽,得自己去体会了8.支持开机启动和在线升级

2023-12-09 16:36:14 3082

原创 Qt基础之四十一:记一次QVector的bad alloc问题追踪

记一次QVector的bad alloc问题追踪

2023-12-07 23:50:03 4711 1

原创 Qt之QCache和QContiguousCache

Qt之QCache和QContiguousCache

2023-12-05 19:10:05 2396 1

原创 C++笔试题之回文数的判断

C++笔试题之回文数的判断。“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。 注意:1.偶数个的数字也有回文数1244212.小数没有回文数

2023-12-05 13:14:08 1805

原创 Qt之基于QMediaPlayer的音视频播放器(支持常见音视频格式)

Qt之基于QMediaPlayer的音视频播放器(支持常见音视频格式)

2023-12-04 12:12:43 2705

原创 Qt基础之四十:Qt Installer Framework(QtIFW)的编译、使用和实现原理

Qt Installer Framework(QtIFW)的编译、使用和实现原理

2023-12-02 15:01:06 4642 1

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关注的人

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