自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

琅嬛福地

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

  • 博客(46)
  • 资源 (20)
  • 收藏
  • 关注

原创 C++类默认有哪些函数

例如下面一个空类Test,没有任何代码class Test{};一 空类的大小 在main方法中计算Test空类的大小,int main() { cout << "空类大小是 : " << sizeof(Test) << endl; return 0;} 输出结果:空类大...

2020-03-31 23:19:48 591

原创 C++程序生成dump文件并分析dump

C++ 开发客户端时,如果需要分析程序运行时崩溃的问题,可以在代码中添加生成dump的功能,这里介绍用VS开发时如何生成dump文件,以及dump文件的分析方法。 VS开发时,debug模式的“优化功能”是禁用的,release时是启用了优化,此时是无法生成dump文件的,需要打开“优化禁用”选项,如下图: 生成dump的代码:/*dum...

2020-03-31 17:56:14 5110

原创 pyqt自定义信号与信号重载

在C++中,自定义信号的写法是signals: void sig1(); void sig2();一 pyqt自定义信号pyqt的自定义信号要类pyqtSignal来定义: # 定义一个信号 # 无参数信号 signal1 = pyqtSignal() signal1 = pyqtSignal(object) # 发送3个参...

2020-03-30 16:03:42 1368

原创 PyQt信号槽用法详解介绍与代码演示

在窗口上加一个按钮,并绑定信号槽 # 添加Button self.button1 = QPushButton('AAA') # 将信号与槽关联 self.button1.clicked.connect(self.onClick_Button)这与C++的写法不同 connect(ui.button1, SIGNA...

2020-03-30 10:20:12 1936 1

原创 PyQt开发环境搭建与配置

安装包链接: 链接:https://pan.baidu.com/s/1-QO989dPo0x-MIXzsnubNA 提取码:ez56一 IDE安装与环境配置(1)安装Python IDE,我用的是PyCharm 2019.1(2)安装Anaconda,官网 https://mirrors.tuna.tsinghua.edu.cn/anaconda/ar...

2020-03-30 09:54:57 876 2

翻译 QMetaObject 的使用说明

在Q_OBJECT的代码中,QMetaObject是一个很重要的角色,字面意思就称为元对象吧,有道词典的解释 可以看看Qt助手的解释 The QMetaObject class contains meta-information about Qt objects. QMetaObject类包含关于Qt对象的元信息。 The...

2020-03-28 22:48:59 4497

原创 Q_OBJECT解析

一 Q_OBJEC 编写Qt程序久了,对Q_OBJEC宏就不陌生了,大家都知道要想用信号槽,那就得在类的私有部分加上Q_OBJECT,Qt助手的解释如下: The Q_OBJECT macro must appear in the private section of a class definition that declares its own signa...

2020-03-28 22:15:38 1944 1

原创 Qt视频剪辑软件开发(四):视频双向拖动与剪辑的实现

前面3篇大概介绍了音视频解码播放显示等,这篇介绍最关键的地方,视频快进seek功能。 由于要做视频剪辑,需要调节视频的起始点,用Slider控件是比较好的选择,但是Qt提供的QSlider只能单向拖动,不能双向拖动,很遗憾,用两个QSlider又不美观。还好Qt有很多第三方拓展库,于是找到了Qt双向滑动控件QxtSpanSlider,关于该控件的使用,可以查看我的博客...

2020-03-28 17:12:46 2259 1

原创 Qt视频剪辑软件开发(三):音频解码播放

音频处理,用Qt自己的类QAudioOutput,QIODevice。在项目中需要添加Qt多媒体模块: 音频的处理和视频基本相同,例如下面是读帧后,在线程函数run()中做解码:if (pkt.stream_index == FFmpegUtils::GetInstance()->m_audioStream){ g_apts = FFmpegUtils::...

2020-03-28 16:41:09 1699

原创 Qt视频剪辑软件开发(二):视频显示

上篇说明了大概的代码结构,这篇主要说明如何加载视频并显示。 点击【添加视频】按钮后,会得到视频的绝对路径名称,代码如下: m_filename = QFileDialog::getOpenFileName(this, tr("选择视频文件")); if (m_filename.isEmpty()) { return; } ui.lineEdi...

2020-03-28 16:09:39 1357

原创 Qt视频剪辑软件开发(一):开发步骤介绍

小视频这几年比较火,音视频行业的发展也比较快,最近用Qt ffmpeg做了个视频剪辑软件,可以拖动视频设置起始点进行视频剪辑。界面如下: 视频播放后拖动双端进度条,下方的spinbox就会记录剪辑的起始点,就可以选择剪辑的起始点,视频播放的时候不会改变spinbox的值。点击开始采集后,弹出设置窗口,可以设置剪辑后的视频名称和路劲,点击【确定】或者【x】退出设置...

2020-03-28 15:40:35 6441 3

原创 Qt监控目录文件变化:QFileSystemWatcher用法

Qt提供了目录文件变动检测功能的类QFileSystemWatcher,使用该类要想添加头文件 #include <QFileSystemWatcher> 先看看他的源码: bool addPath(const QString &file); QStringList addPaths...

2020-03-27 17:25:11 3542 5

原创 Qt获取文件详细信息:QFileInfo的用法

通过类QFileInfo可以获取文件信息,选择一个文件,即可分析出该文件的信息。 QFileInfo类有很多方法,例如: bool exists() const; static bool exists(const QString &file); void refresh(); QString filePath() c...

2020-03-27 17:11:08 5166

原创 VS快捷键

Ctrl + M + O: 折叠所有方法Ctrl + M + L: 展开所有方法Ctrl + M + M: 折叠或者展开当前方法Ctrl + K + C 注释Ctrl + K + U 取消注释

2020-03-25 01:06:29 245

原创 Qt启动外部进程、命令行、获取输出

Qt提供了启动外部进程的类QProcess,该类有启动,结束,等待等方法操作启动的外部进程。如果是用VS编程,也可以使用windows API启动外部进程,ShellExecuteEx,CreateProcess等,下面主要介绍QProcess的用法。 start启动,close关闭。界面如下: 一 启动外部程序 使用前添加头...

2020-03-22 18:21:54 2129

原创 C++ Qt QComboBox使用教程

QComboBox提供了下拉列表选择的功能,使用方法如下:(1)添加数据项 //给combobox添加内容项 ui->comboBox->addItem("11"); ui->comboBox->addItem("12"); ui->comboBox->addItem("13"); ui->co...

2020-03-22 15:44:05 14752 3

原创 Qt窗口关闭时提示是否退出

一些软件在退出时经常会有提示,例如是否关闭,保存,最小化等操作,本篇介绍Qt如何实现这种效果。 动态图1: 动态图2: 图1是直接弹出QMessageBox, 图2需要自己设计Qt界面类,在关闭窗口时弹出,第二种稍微复杂点,下面分别介绍。一 QMessageBox形式的提示 窗口关闭时会触发c...

2020-03-21 01:17:05 3027

原创 python线程同步

线程同步在大部分语言的操作多类似,加锁,互斥等。如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程进行同步。 使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire ...

2020-03-18 12:30:02 275

原创 python3多线程

Python3 通过两个标准库 _thread 和 threading 提供对线程的支持。_thread 提供了低级别的、原始的线程以及一个简单的锁,它相比于 threading 模块的功能还是比较有限的。 threading 模块除了包含 _thread 模块中的所有方法外,还提供的其他方法: threading.currentThread(): 返回当前的...

2020-03-18 11:31:43 215

原创 python异常

一 断言 python断言和C/C++的用法相同,true正常,false错误,例如下面的python代码assert(False)assert 1==1 # 条件为 true 正常执行assert 1==2 # 条件为 false 触发异常二 异常 例如,常见的0做除数,会出现异常 a = 2 / 0 异常信息Traceb...

2020-03-16 11:53:05 352

原创 python3 六种数据类型

Python3 中有六个标准的数据类型:(1)Number(数字)(2)String(字符串)(3)List(列表)(4)Tuple(元组)(5)Set(集合)(6)Dictionary(字典)Python3 的六个标准数据类型中: 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数据(3...

2020-03-15 16:48:58 742

原创 python调用C++ dll

python和C++可以相互调用,例如,我用VS2019写了一个CMATHDLL.dll, 实现了python调用C++ dll.一 创建C++ dll工程.hextern "C" CMATHDLL_API int add(int a, int b);extern "C" CMATHDLL_API int sub(int a, int b);.cppC...

2020-03-15 16:29:34 571

原创 python模块简述

python中的模块是什么? 简而言之,在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件。 如果是自定义模块,不要和系统内置的模块名称重复。 模块导入格式: ...

2020-03-15 16:04:18 320

原创 python运算符重载

python 和 C++ 一样,都支持运算符重载,pyhton提供了内置重载方法,如果想重载,直接重写改方法即可,如下所示:__add__(self, other) 加法 __sub__(self,other) 减法 __mul__(self,other) 乘法 __truediv__(self,other) 除法 __floordiv...

2020-03-15 15:25:28 474

原创 pytnon nonlocal关键字

python在函数内部可以嵌套声明函数,感觉这功能没必要,增加了代码复杂度,还不如直接和C++一样在函数外部声明一个函数,python可以使函数的局部变量作为嵌套函数的全局变量使用。例如下面的代码:def fun1(): num = 100 def fun2(): nonlocal num num = 101 pr...

2020-03-15 10:05:18 237

原创 python继承

pyhon和C++一样,允许继承,多继承,方法重写等。继承时,父类必须与派生类定义在一个作用域内 。一 、 python继承 例如父类Parentclass Parent: age = 50 name = "asdf" # 以双下划线开头的是私有成员 __si = 100 # 构造函数 def __init...

2020-03-14 21:30:57 250

原创 python类与对象

下面是python的类:class Parent: i = 123 # 以双下划线开头的是私有成员 __si = 100 # 构造函数 def __init__(self): print("先运行构造方法") #普通成员函数,第一个是默认参数self,表示类的示例 def fun(self): ...

2020-03-14 20:09:42 237

原创 python全局变量

python和C++一样,也有全局变量,例如下面的代码g_Value = 100def fun1(): global g_Value print("fun1 g_Value修改前 = %d" % g_Value) g_Value = 103 print("fun1 g_Value修改后 = %d" % g_Value)def fun2()...

2020-03-14 19:46:28 355

原创 Qt树形控件QTreeView使用详细说明

Qt提供了树形控件,当需要动态选择相应的信息展示时,可以用树形控件。 例如,下面的demo效果: 继承关系class Q_WIDGETS_EXPORT QTreeView : public QAbstractItemView 点击树形节点,如何获得点击节点的信息呢, 查看QTreeView的头文件,该类好像没...

2020-03-14 00:07:02 16654 8

原创 Qt setFrameShape设置控件窗体类型

Qt的控件属性设置既可以在Qt设计器中设置,也可以在代码中设置,还以用qss语法修饰,下面介绍如何修改控件的窗体类型,在Qt设计器中有一项frameShape, 继承于QFrame的窗体控件可以修改该属性达到不同的效果,例如QTableView, QTreeView等。可以设置默认的窗体类型,例如有边框,无边框,当你觉得默认的类型不好看时,可以自己修改。 在代码中...

2020-03-13 22:27:25 9935

原创 Qt打开文件夹选择文件、获取文件名、路径名、打开多个文件

在用Qt进行客户端开发时经常有打开目录选择文件的需求,本篇博客介绍Qt打开文件夹选择文件,获取文件名,获取文件路径,打开多个文件等方法。基本都是用QFileDialog类的方法,使用时需要包含头文件: #include <QFileDialog>1. 获取选择的文件夹路径 会用到...

2020-03-10 20:59:45 9967

原创 QMap的使用与源码简析

QMap的概念和数学中的函数类似,是一种映射对应关系: y = f(x) 一个x对应一个y, 但是一个y可能还有多个x对应。QMap<Key, Value> 也是这种关系,不能有重复的Key, 可以有重复的Value, 并且QMap中的元素是按照Key进行排序,如果有重复的Key, 那么对......

2020-03-09 20:46:12 3331

原创 无法运行rc.exe

如果电脑中装了多个VS, 在编译时代码时可能出现“无法运行rc.exe”的问题,需要去windows sdk版本找到 rc.exe, rcdll.dll这两个文件。 复制这两个文件到你的出问题的VS目录。例如,我是VS2015出问题了,那么需要放到如下目录 D:\Program Fi...

2020-03-09 13:52:33 7495 5

原创 QVector用法详细介绍

QVector类是动态数组的模板类,顺序容器,它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。使用前需要包含头文件 #include <QVector> 下面介绍QVector的基本用法,先看看它的一些方法:构造函数QVector()  //无参的构造函数QVector(int size) //构造一个大小为size个 值......

2020-03-08 22:53:52 28743 1

原创 Qt双向滑动控件QxtSpanSlider

QSlider只能像一边移动,某些场合可能需要实现双端都可移动的slider. Qt有个很老的第三库Qt Extension Library有双向Slider的实现,抠出了其中关于双向slider的代码,做了一个小demo, 效果如下: 左右两个是LineEdit,中间是QSlider,做了控件提升(可以理解为MFC的控件重载), 提升为QxtSpanS...

2020-03-07 00:50:48 5182 8

原创 VS2019 Qt 怎么添加Qt模块?

今晚在用Qt时突然发现VS2019的Qt Projects Settings界面变了,之前都是用VS2015, VS2017,这几个版本基本没区别,VS2019的qt-vsaddin-msvc2019-2.4.2.vsix把 Qt Projects Settings的界面集成到VS了,如下图: VS2019 Qt模块界面 以往点击Qt Proj...

2020-03-06 21:22:41 14059 6

原创 C++调用ffmpeg命令推流【详细代码】

我们可以使用ffmpeg命令进行很多工作,也可以在代码中调用ffmpeg指令进行相关操作,例如推流,录屏等,线面介绍C++调用ffmpeg命令进行rtmp推流。命令如下: ffmpeg.exe -re -i qqq.flv -c copy -f flv rtmp地址 ...

2020-03-06 15:45:19 6696 3

原创 QLabel自适应显示图片

在Qt开发时,如果不知道怎么实现功能,可以先看看相关类的代码,例如,要实现QLabel显示图片,如果没做过肯定不知道怎么写,看看QLabel的代码:public Q_SLOTS: void setText(const QString &); //设置文本 void setPixmap(const QPixmap &); //设置pixmap...

2020-03-05 22:19:55 2043 1

原创 Qt动态加载qss文件

Qt可以动态加载qss样式,例如,初始界面如下: 我们把样式放到一个qss文件中,新建一个skin.txt,改后缀名为qss,把想要改的样式代码写到skin.qss文件中,程序启动时动态加载qss文件,改变界面样式。配色可以自己选择,每个人的视觉感受都不同。 用Qt代码设置样式,需要使用setStyleSheet,该函数声明如下:void s...

2020-03-05 21:31:56 2325

原创 qss美化Qt界面

Qt提供了类似前端css的样式表qss(Qt样式表)来进行界面优化,可以实现代码界面分离,像MFC这种需要进行控件重载才能实现。qss的使用方法如下: (1)在Qt设计器中对控件右键----改变样式表,可以填写qss语法来修改样式,这样是对单独的控件进行设置。 (2)在界面空白处改变样式表,是全局设置。 例如下面的界面:经过q......

2020-03-05 18:07:33 6808 2

C++ QMainWindow无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小

C++ QMainWindow无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小,适用于Win11、Win10, 自带窗口阴影圆角。

2024-04-23

C++ glog demo

C++ glog demo, 运行环境vs2019、VS2022,x86, 如果需要x64编译,需要自己下载编译glog x64的sdk

2024-04-23

Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送

1、可以使用vs2019/vs2017 Qt进行编译 2、源码说明链接:https://mingshiqiang.blog.csdn.net/article/details/80733737

2022-02-22

c++ PImpl实现机制

**PIMPL** ,即Private Implementation,一般称之为类的私有化实现,PImpl主要有两个作用; (1)它让声明和实现进行解耦,在项目开发时,如果很多文件引用了该头文件,如果头文件改变了一些实现,那么在编译时,所有引用的文件也得重新编译一次,增加了c++程序的编译时间, 如果把实现用一个指针进行声明,改变实现的代码,只会关联一次,降低了耦合度,可以减少编译时间。 (2)Pimpl,也可以称之为pointer to implementation, 指向实现的指针,可以用来对“类的接口与实现”进行解耦,比如在sdk开发时,可以用这个技巧来避免在头文件中暴露私有细节,使sdk接口与实现保持完全分离。

2021-09-15

很全的 Qt qss

这是一个Qt第三方样式表,下载后,可以直接加到项目中使用。不知道怎么用的,可以关注我的Qt专栏。使用链接:https://mingshiqiang.blog.csdn.net/article/details/108860180

2020-09-29

jsoncpp_sdk_x64.rar

vs2017编译的jsoncpp sdk, 包含Debug和Release版本dll, lib , include,可以和其它sdk一样直接包含到项目中使用,可以去我的博客C++专栏找使用方法。

2020-04-06

ffplay源码架构图.vsdx

我用visio2016画的,把ffplay源码中的各个模块都展现出来了,有兴趣的可以去看看我的博客。

2019-12-08

MusicPlayer.rar

该音乐播放器使用Qt开发,代码用QtCreator编写,下载即可使用,主要用QMediaPlayer的一些功能,可以看我的博客讲解。

2019-11-17

Qt子线程更新数据发到主线程显示.rar

Qt的子线程无法直接更新主UI,需要发送信号到主线程进行更新,我用的QTableWidget展示数据。

2019-08-18

FileDownlod.rar

Qt实现的网络文件下载,用QtCreator可以直接打开编译,运行,我的博客有讲解,可以去看看。

2019-08-05

lua-5.3.4源码

lua5.3.4源码,导入VS2015可以直接编译,想学习分析Lua源码的可以下载,研究。

2019-01-10

中国象棋源码(C++/MFC)

用MFC写的中国象棋游戏,VS2015可以直接编译,有多重AI算法,有兴趣可以研究,全网最好的象棋代码。又不懂的可以看看我的博客,有讲解。

2018-12-24

Win10 Git Bash闪退的解决方案文件

当你的Win10系统出现Git Bash闪退时,需要该文件进行开启相关服务,可以参考我的博客进行解决。

2018-11-07

Halcon12与MFC数字识别详细教程

基于Halcon12的数字识别,识别精确,关于代码的解释,请关注的我的博客,在博客里我做了详细的解释。

2018-07-09

ffmpeg3.2.4_Win32开发库文件

ffmpeg3.2.4_Win32开发库文件,包含头文件,静态库lib, 动态库dll.

2018-06-03

Qt进度条QProgressBar的使用(详细代码)

详细的工程代码与注释,讲解Qt进度条QProgressBar的使用方法,完整的代码。

2018-05-03

支持向量机通俗导论(理解SVM的三层境界)PDF

这应该是全网最全最清晰的SVM学习的资料了,我学了10天,终于了解了,大家可以学学看。PDF文档学会后,可以结合OpenCV的源码看看,相信你们一定有大的收获。

2018-04-13

C# TCP网络通信示例:多人聊天发文件

该资源包含客户端,服务器, 用户注册到数据库(可自行裁剪该功能),通过TCP 实现聊天,发文件,可以多人同时聊天。代码有完整的注释,是完整的项目。

2018-04-02

华为C++/C/java代码规范(完整版)

最新的华为代码规范,适用于C++/C/java,高清带目录,格式标准的代码给自己和维护者都是一种享受,建议程序员多看看。

2018-03-14

C++/OpenCV2.4.9 数字精确识别源码

利用OpenCV的图像处理技术,对图像进行灰度处理,二值分析,降噪,滤波等,识别照片中的数字,完美精确, C++ VS2015代码,有详细的代码注释,完整源码。

2017-11-02

C# Winform数值实时曲线(完整示例)

C#实现显示实时数据,并形成曲线,保存数据,完整的项目代码

2017-07-01

空空如也

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

TA关注的人

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