自定义博客皮肤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++类默认有哪些函数

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

2020-03-31 23:19:48 123 0

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

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

2020-03-31 17:56:14 714 0

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

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

2020-03-30 16:03:42 316 0

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

在窗口上加一个按钮,并绑定信号槽 # 添加Button self.button1 = QPushButton('AAA') # 将信号与槽关联 self.button1.clicked.connect(sel...

2020-03-30 10:20:12 230 0

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

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

2020-03-30 09:54:57 113 0

翻译 QMetaObject 的使用说明

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

2020-03-28 22:48:59 557 0

原创 Q_OBJECT解析

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

2020-03-28 22:15:38 404 0

原创 Qt视频剪辑软件开发(五):ffmpeg视频剪切

ffmpeg命令行可以实现很多功能,视频裁剪,拼接,录制等,有兴趣的可以试试,结合前面4篇博客,本篇介绍视频裁剪的实现。 ffmpeg视频剪切命令如下: ffmpeg -i 1.mp4 -ss 00:10:00 -c copy -to 00:20:00 2.mp4 原...

2020-03-28 17:45:06 575 0

原创 Qt视频剪辑软件开发(四):视频双向拖动快进快退

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

2020-03-28 17:12:46 256 0

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

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

2020-03-28 16:41:09 351 0

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

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

2020-03-28 16:09:39 305 0

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

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

2020-03-28 15:40:35 1149 1

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

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

2020-03-27 17:25:11 360 3

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

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

2020-03-27 17:11:08 519 0

原创 VS快捷键

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

2020-03-25 01:06:29 63 0

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

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

2020-03-22 18:21:54 421 0

原创 QComboBox的使用

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

2020-03-22 15:44:05 430 0

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

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

2020-03-21 01:17:05 528 0

原创 python线程同步

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

2020-03-18 12:30:02 52 0

原创 python3多线程

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

2020-03-18 11:31:43 53 0

原创 python异常

一 断言 python断言和C/C++的用法相同,true正常,false错误,例如下面的python代码 assert(False) assert 1==1 # 条件为 true 正常执行 assert 1==2 # 条件为 false 触发异常 二 异常 例如,常...

2020-03-16 11:53:05 64 0

原创 python3 六种数据类型

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

2020-03-15 16:48:58 118 0

原创 python调用C++ dll

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

2020-03-15 16:29:34 151 0

原创 python模块简述

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

2020-03-15 16:04:18 81 0

原创 python运算符重载

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

2020-03-15 15:25:28 83 0

原创 pytnon nonlocal关键字

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

2020-03-15 10:05:18 67 0

原创 python继承

pyhon和C++一样,允许继承,多继承,方法重写等。继承时,父类必须与派生类定义在一个作用域内 。 一 、 python继承 例如父类Parent class Parent: age = 50 name = "asdf" # 以双下划线...

2020-03-14 21:30:57 47 0

原创 python类与对象

下面是python的类: class Parent: i = 123 # 以双下划线开头的是私有成员 __si = 100 # 构造函数 def __init__(self): print("先运行构造方法") ...

2020-03-14 20:09:42 54 0

原创 python全局变量

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

2020-03-14 19:46:28 79 0

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

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

2020-03-14 00:07:02 2397 4

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

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

2020-03-13 22:27:25 1593 0

原创 QtCreator中文乱码、常量换行符如何解决

用QtCreator开发时,经常遇到中文乱码,有常量换行符等现象,由于QtCreator默认是utf-8编码,我windows系统是gbk32编码,在编译时utf8去解析gbk32自然就会出现乱码。 例如,设置按钮字体 ui->pushButton->setText(&quo...

2020-03-13 20:40:27 320 1

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

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

2020-03-10 20:59:44 1582 0

原创 QMap的使用与源码简析

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

2020-03-09 20:46:12 317 0

原创 无法运行rc.exe

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

2020-03-09 13:52:33 576 0

原创 QVector用法详细介绍

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

2020-03-08 22:53:52 2504 0

原创 Qt双向滑动控件QxtSpanSlider

QSlider只能像一边移动,某些场合可能需要实现双端都可移动的slider. Qt有个很老的第三库Qt Extension Library有双向Slider的实现,抠出了其中关于双向slider的代码,做了一个小demo, 效果如下: 左右两个是LineEdit,中间是QSlide...

2020-03-07 00:50:48 658 0

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

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

2020-03-06 21:22:41 4481 3

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

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

2020-03-06 15:45:19 1492 0

原创 QLabel自适应显示图片

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

2020-03-05 22:19:55 260 0

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