4 令狐掌门

尚未进行身份认证

因为喜欢,所以热爱。

等级
TA的排名 1w+

C++友元函数与友元类

一 友元函数的定义与调用 C++类除了成员函数,静态成员函数,还有一种函数:友元函数。 友元函数和类一种朋友关系,它不属于类,但可以访问类的私有成员,它和类是一种朋友关系,也不需要用类的对象去驱动,例如下面的代码:#include <iostream>using namespace std;class ASD{ friend int...

2020-04-01 12:50:27

C++空类默认有哪些函数

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

2020-03-31 23:19:48

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

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

2020-03-31 17:56:14

pyqt自定义信号与信号重载

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

2020-03-30 16:03:42

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

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

2020-03-30 10:20:12

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

QMetaObject 的使用说明

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

2020-03-28 22:48:59

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

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

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

2020-03-28 17:45:06

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

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

2020-03-28 17:12:46

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

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

2020-03-28 16:41:09

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

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

2020-03-28 16:09:39

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

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

2020-03-28 15:40:35

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

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

2020-03-27 17:25:11

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

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

2020-03-27 17:11:08

VS快捷键

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

2020-03-25 01:06:29

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

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

2020-03-22 18:21:54

QComboBox的使用

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

2020-03-22 15:44:05

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

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

2020-03-21 01:17:05

python线程同步

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

2020-03-18 12:30:02

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。