自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C++ Qt 开发藏经阁

寒江孤影,江湖故人,相逢何必曾相识

原创 C++ Qt视频教程

该教程是我个人的Qt开发工作总结,Qt内容较多,目前已更新104节,后续会继续更新,需要了解Qt开发知识的可以私信我,我会在找时间在课程中陆续更新。 课程链接,请点击:https://edu.csdn.net/course/detail/30578 可以加我的q...

2020-11-05 23:42:10 364 0

原创 Qt实现光标线段闪烁效果

有时某些特殊需求需要实现类似光标的闪烁效果,例如下图: 这种效果用计时器可以实现,光标线段在paintEvent事件中进行绘制,两次绘制,根据时间的变化改变画笔的颜色即可,空白的线段的颜色和背景色保持一致,这样就实现了闪烁,代码如下 头文件: #ifndef WIDGE...

2020-11-26 20:53:30 42 0

原创 C++ 系统宏定义 windows mac linux android ios

C++ 系统宏定义 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef _WIN64 //define something for Wi...

2020-11-13 01:03:16 37 0

原创 VLC Qt视频播放器开发指南

VLC的音视频编解码是对ffmpeg的封装,用FFmpeg可以开发视频播放器,推拉流,同样用VLC也可以,某些时候可能比ffmpeg还要简单点。本篇博客介绍VLC Qt视频播放器开发的预备工作。 开发环境:VS2017, Qt5.12_x64, win10 首先需要获取VLC的...

2020-11-09 23:37:29 568 0

原创 C++学习书籍推荐

如果你想学习C++, 没必要先学C语言,C++学会了绝对会C语言。如果会C语言,再学C++会轻松一些。建议直接学习C++。 下面推荐一些我读过的C++书籍, 我不是打广告,作者也没给我钱。纯属个人建议 一 入门篇 (1)C++ Primer, 本书提供了全部示例的源码,而且打印很好,字体大小...

2020-11-09 01:04:22 134 1

原创 C++设计模式:原型模式

定义: Prototype 模式, 用原型实例来指定出创建对象的总类,并且通过拷贝这些原型来创建新的对象。 使用场景 1.当一个系统应该独立于它的产品创建、构成和表示的时候; 2.当要实例化的类是在运行时刻指定的时候,如通过动态加载; 3.为了避免创建一个与产品类层次平行的工厂类层次时; 4...

2020-11-08 23:58:54 40 0

原创 C++设计模式:建造者模式

建造者模式,又称为builder模式。 定义: 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示 。 使用场景: 当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。 使用建造者模式有什么好处: 建造者模式的好处就是使得建造代码与...

2020-11-08 23:57:09 34 0

原创 C++设计模式:工厂模式

我们先看工厂模式的介绍 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 简单来说,使用了C++多态的特性,将存在继承关系的类,通过一个工厂类创建对应的子类(派生类)...

2020-11-08 23:54:53 38 0

原创 C++设计模式:适配器模式

什么是适配器模式? 适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式有两种:1.类的适配器 2.对象适配器,对象适配器更多一些。 代码示例 #include <iostream&...

2020-11-08 23:51:09 27 0

原创 QSlider qss美化 -- 暗黑效果

QSlider在界面开发中是比较常用的控件,默认样式不太好看,如下: 用qss可以美化QSlider的效果,如下图: qss代码 水平的QSlider QSlider { background-color: #363636; border-style: outset;...

2020-11-07 14:00:06 91 0

原创 QProgressBar qss 样式表-无边框暗黑样式

Qt的进度条QProgressBar的默认外观如下 用qss可以改变它的样式,例如修改后的进度条样式如下 qss代码如下,仅供参考 QProgressBar#progressBar { border:none; /*无边框*/ background:rg...

2020-11-07 13:07:48 87 0

原创 QImage的深拷贝与浅拷贝

最近在 做项目时,被QImage深深的坑过,之前也没遇到过,来看看如何构造一个QImage, 查看头文件可知,有如下几种构造方法: QImage() Q_DECL_NOEXCEPT; QImage(const QSize &size, Format format); ...

2020-11-05 23:39:49 103 0

原创 Qt复制到剪切板

Qt的复制功能比较简单,代码如下: QClipboard *pClip = QApplication::clipboard(); pClip->setText("Hello Qt, 这是Qt复制的内容"); 需要包含的头文件 #include <QClipb...

2020-10-28 21:08:24 79 0

原创 C++11关键字constexpr看这篇就够了

一、在普通函数中的使用 例如下面的代码, 数组的大小必须是常量,在声明数组array时,用函数返回值,此时会报错: error C2131: 表达式的计算结果不是常数 note: 对未定义的函数或为未声明为“constexpr”的函数的调用导致了故障 用constexpr关键字可...

2020-10-26 23:50:46 174 0

原创 VS西红柿插件添加注释

C++在VS下开发时不像C#,没有快速注释,不过可以自己设置,当然在VS中可以设置,西红柿插件中也可以设置,找到如下界面,点击进去后,在左侧点击new,新建一个快速操作,快捷键可以自己设置,例如我把注释设置成了 z. 添加以下内容 /**************************...

2020-10-24 11:29:50 66 0

原创 C++11 initializer_list用法

initializer_list提供了新的初始化方式,例如需要在形参中传入多个值,可以用数组实现,C++11提供了新的初始化方式也可以实现,使用前需要包含头文件 #include <initializer_list> 例如求和 #include <iostream&g...

2020-10-17 00:50:48 58 0

原创 python opencv显示图片与保存图片

在pycharm中输入以下代码 import cv2 img = cv2.imread("D:/image/1.jpg", cv2.IMREAD_GRAYSCALE) cv2.imshow("imagewindow", img) cv2.waitKey...

2020-10-17 00:48:53 61 0

原创 SDL窗口创建与显示

SDL创建窗口有相应的步骤,如下 (1)调用SDL_CreateWindow, (2)创建渲染器SDL_CreateRenderer, (3)显示,调用SDL_RenderPresent,在显示前最好清空之前的显示,调用SDL_RenderClear, 根据上述步骤,编写SDL窗口代...

2020-10-11 20:08:55 86 0

原创 Qt开源日志模块QsLog使用方法

C++常用的日志库有log4cplus, log4cpp等,Qt4也有一个比较老的日志库log4qt gilthub链接:https://github.com/victronenergy/QsLog 在example下有QsLog的使用方法,双击log_example.pro即可加载所有exa...

2020-10-10 22:49:07 147 0

原创 windows python opencv开发环境配置(亲测有效)

先检测电脑是否有python opencv环境,依次输入 python import cv2 cv2.__version__ 如果出现了opencv版本,说明电脑里有python opencv环境,如果显示no opencv modle之类的提示,那就是没有o...

2020-10-05 22:36:04 98 0

原创 Qt解析xml文件

先来看看什么是xml. XML是可扩展标记语言(Extensible Markup Language,XML)缩写,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 例如下面是一个xml格式的文件: ...

2020-10-03 22:39:18 118 2

原创 推荐一个很全的Qt qss, 你想要的都有

链接:https://github.com/mstuttgart/qdarkgraystyle.git 下载后,可以把其中qss相关的部分copy下来,例如我的目录 手上积分有多余的,可以直接下载我上传的文件,【点击即可下载】。 把qrc文件加到项目中后,就可以直接使用...

2020-09-29 00:18:47 282 0

原创 VS Qt项目转成QtCreator项目

例如下面是一个VS2017 Qt5.12.8项目 代码文件 可以看出在代码文件中没有.pro文件,也就是说该工程无法用QtCreator打开, 我们可以的VS中的Qt插件生成.pro文件,点击 11

2020-09-27 23:36:58 170 0

原创 QString转wchar_t*

const wchar_t* wstr = reinterpret_cast<const wchar_t *>(fileName.utf16());

2020-09-27 01:21:26 248 0

原创 Qt Tcp通信,简单聊天程序的编写

Qt Tcp通信和windows的类似,分服务端和客户端,模型如下 windows的Tcp通信可以看这篇文章:【请点击查看】 Qt的Tcp主要涉及到两类,QTcpServer和QTcpSocket, 对于服务端需要两个socket, 一个用于监听客户端连接,也就是QTcpSe...

2020-08-23 16:47:17 275 0

原创 git pull --rebase的作用是什么,它与git pull有什么区别?

在push代码时,会提示使用git pull命令,也就是拉取远端代码,更新我们的仓库,那么为什么又要加个 --rebase命令呢?下面来说说这个问题,先从这两命令开始。 git pull = git fetch + git merge FETCH_HEAD git pull --re...

2020-08-23 03:39:01 610 1

原创 VS2019 Qt开发环境搭建与配置

Qt是很优秀的图形界面跨平台开发框架,开发语言可以用C++, 也可以用python, 建议使用C++。windows上Qt开发环境可以使用QtCreator, 也可以使用VS + Qt, VS开发调试功能强大,本篇介绍VS2019 + Qt5.14开发环境的配置, 其它版本的类似。 VS...

2020-08-15 01:07:19 4128 0

原创 QMenu qss应用介绍与演示

qss可以应用于控件也可以应用于菜单QMenu, 正常的菜单字体比较小,选择项颜色也不能设置,用qss之后就可以任意修改了,如下图: qss代码如下 QMenu::item { font:16px; background-color:rgb(253,253,25...

2020-08-15 00:44:13 173 0

原创 Qt右键菜单的实现介绍与代码演示

某些软件需要实现右键菜单,如下: 可以添加快捷键,分割线,在点击的同时,又可以 用快捷键操作。 实现起来也不难,重写contextMenuEvent方法,该方法如下 [virtual protected] void QWidget::contextMenuEvent(QCon...

2020-08-14 00:07:19 260 0

原创 Qt控件自绘:温度计控件

Qt本身只提供了一些基本控件,如果想搞一些复杂的,即使用上qss, 有些复杂的控件也还是无法实现的,例如汽车仪表盘, 电池容量等, 这些是 需要自己绘制,再实现相关信号槽,才能达到效果。例如下图 的温度计: 根据温度不同显示不同的温度标识,这种不规则的图形,用基本控件是无法实现的, 一...

2020-08-09 00:11:22 371 0

原创 二叉树的定义与C++实现

树,是有限节点的集合。生活中的树是树根在下面,数据结构中的树的根在顶部,如下图: 公司的人员组织架构,董事长,总经理,副总。。。,这种模型可以用二叉树表示,还有一些压缩算法也用到了树结构。 树的几个概念 (1)度:有几个直接的孩子,例如,A的度是3,它有BCD三个孩子,B的度...

2020-08-01 21:49:04 109 0

原创 Qt仪表盘控价QDial的使用介绍

仪表盘控件QDial在Qt Designer的input widgets 模块,如下图: 仪表盘在车载行业用的比较多,显示车速,油量等信息, 拖拽一个QDial、QPressBar到界面上,如下图: QDial是一个Slider, 派生于QAbstractSlider,...

2020-07-25 20:07:18 258 0

原创 QWebEngineView使用说明

QWebEngineViw是网页控件,他可以显示和编辑web文件。例如显示我的博客主页,可以拖动显示: 使用 QWebEngineView 需要添加该模块,例如在.pro文件中添加: QT += core gui webenginewidgets 在头文件添加一个成...

2020-07-20 23:30:22 373 0

原创 C++ STL multimap与unordered_map

一 multimap用法说明 multimap, 允许元素重复的关联容器,它的内部实现也是用的红黑树,例如下面的代码 #include <iostream> #include <map> #include <string> using namesp...

2020-07-17 22:48:50 181 0

原创 beyond compare git冲突解决配置

初始化仓库后,在系统目录就会生成.gitconfig文件,找到这个文件 "C:\Users\Alpha\.gitconfig" 添加如下内容 [diff] tool = bc4 [difftool "bc4&...

2020-07-12 16:16:22 150 0

原创 Qt5.9 5.12等高版本的安装问题

Qt5.9之后的版本,安装时需要登陆,不然无法next,因此在安装时建议先断网,next之后可以把网络再连上,不管是windows还是mac都有这种现象。

2020-07-11 18:45:25 436 0

原创 C++ STL map使用详细介绍(插入,遍历、查找,删除,仿函数自定义map排序)
原力计划

简单说说C++ STL map的特点,map是有序键值对,默认是按key值递增存储,可以理解为函数有递增趋势的函数f(x, y),既然是函数,那么一个x只能对应一个y, 而一个y可以有多个x对应,也就是说,在map中,key不能重复,value可以重复。 至于map的内部实现红黑树,本篇就...

2020-07-11 01:33:31 287 0

原创 git fatal: The current branch master has no upstream branch. There is no tracking information for。。。

当你在本地创建了仓库,远程也创建了仓库,或者之前和远程做了连接,但是你重装系统了,再次从远程拉取或者push代码时,就会出现如下错误: There is no tracking information for the current branch 或者 fatal: The ...

2020-07-10 23:25:47 145 0

原创 C++ boost ref 引用类型介绍

boost库提供了一种“强引用”类型,标准C++的引用类型,一旦指向类型,就不能改变它的值,boost的ref类型可以进行修改值,++等操作。 boost引用库是在ref.cpp文件的reference_wrapper内,使用前要包含图文件 ...

2020-07-06 23:28:04 344 0

原创 C++ boost库开发环境配置

最近有小伙伴看了我的教程,被C++ boost开发环境的配置难住了,我在写博客时觉得C++程序员应该对SDK的配置很熟悉,就没着重介绍,本篇详细介绍VS2017 C++ boost开发环境的配置,其它库的配置也类似。 像boost, ffmpeg, opencv, SDL, halcon...

2020-07-05 22:30:16 553 1

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