- 博客(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无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小
2024-04-23
Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送
2022-02-22
c++ PImpl实现机制
2021-09-15
很全的 Qt qss
2020-09-29
jsoncpp_sdk_x64.rar
2020-04-06
支持向量机通俗导论(理解SVM的三层境界)PDF
2018-04-13
C# TCP网络通信示例:多人聊天发文件
2018-04-02
C++/OpenCV2.4.9 数字精确识别源码
2017-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人