- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 【QML使用C++类与接口 2】
通过上述步骤,你可以使用方法将C++对象直接暴露给QML。这样做的好处是简单直接,适用于那些在QML中只需要一个实例的对象。关键步骤包括:创建C++类、在应用程序初始化时设置上下文属性、在QML中使用该属性。
2024-06-14 10:10:21
219
原创 【QML使用C++类与接口 1】
通过上述步骤,你可以在QML中调用C++接口。关键步骤包括:创建C++类、注册C++类型到QML、在QML中实例化并使用C++类。Qt的元对象系统和信号槽机制使得这种跨语言调用变得相对简单和高效。
2024-06-14 10:01:37
280
原创 QML使用QCustomPlot笔记
在QML中使用QCustomPlot,QML使用QT的Widget控件,QML使用QWidget控件,QCustomPlot的设置与使用,QCustomPlot设置时间轴
2024-01-11 15:51:05
1136
原创 设计模式 ------ 策略模式(Strategy Pattern)
定义一系列算法,把他们一个个封装起来,并使他们可以互相替换(不同情况下处理方式需改变时,替换处理算法)。该模式的算法可以独立于使用它的程序代码而变化(扩展子类化算法)。(代码和类图略有出入,因为第一稿的指针使用的是原始方法,当前使用的C++11以上版本的智能指针,避免直接new创建堆对象,减少内存泄漏的风险)。主要应用在根据不同条件(未来可能存在其他不确定条件),进行不同操作的代码;使用模式的方法进行类扩展,从而避免直接进行代码改动。遵循:对修改封闭,对扩展开放的原则。
2023-09-27 17:46:25
82
原创 设计模式 ------ 模板方法(Template Method)
这里的 MyThread 是效仿 Qt4 的QThread做的简单的实现(这里仅仅只是为了展示template method的用法,QThread实际实现要比这复杂),start函数内部的线程创建与使用作为Template Method固定不变的部分,而将线程需要做的工作放到子类UseMyThread中去进行延时实现。Template Method使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法: 定义一个操作中的算法骨架(稳定),而将一些步骤延迟(变化)到子类中.
2023-09-22 17:43:09
72
原创 面向对象设计原则
1. 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良影响,从而实现不同层次间的松耦合。2. 子类和父类耦合度高于包含组合(当扩展方向不一样时,组合可以在其他地方单独使用,但继承耦合度高,不可分割)2. 抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)1. 高层模块(稳定)不应该依赖低层模块(变化),二者应该依赖抽象(稳定)1. 不应该强迫客户程序依赖他们不需要的接口(使用者用不到的接口私有化)2. 变化的方向隐含着类的责任。
2023-09-21 11:52:25
46
原创 QML使用windeployqt工具打包
windeployqt xxx.exe --qmldir qmlpathqml打包无法运行qt quick打包无法运行
2023-09-20 10:25:42
313
1
原创 Linux配置QT Android开发环境
Ubuntu20.04配置Qt的安卓开发环境 Qt5.14.2配置Android Linux配置Qt on Android 简单有效
2022-11-29 14:25:41
939
原创 C++11学习笔记 -- thread&mutex
#include <iostream>#include <thread>#include <chrono>#include <mutex>/*****************************************************************************多线程 & 互斥锁多线程1. 创建线程后,一定要记得释放线程2. 多线程中能不共享的资源,就不共享3. 共享的资源注意,各线程访问时的安全.
2022-01-25 11:22:27
441
原创 C++11学习笔记 -- Lambda
#include <iostream>using namespace std;template <typename Func, typename A, typename B>void templetePrint(Func func, A a, B b){ func(a,b);}void testLambda(){ //[]默认不捕获外部定义的变量 auto funcPrint = [](int a,int b) { cout << "fun.
2022-01-14 11:17:24
125
原创 C++11学习笔记 -- 智能指针
#include <memory>#include <iostream>/************************************************************************************使用智能指针的注意点: 1. 绝对不要自己手动管理堆空间(delete、delete[]) 2. 初始化智能指针时尽可能使用 std::make_shared 3. 不要用一个裸指针去构造两个智能指针对象(两个单独构造的对象的.
2022-01-13 17:42:59
248
原创 C++11学习笔记 -- move、auto、decltype、for
#include <iostream>#include <string>#include <vector>#include <cstring>#include <cassert> #include <typeinfo>using namespace std;//C++11 右值引用和void std::move()函数//右值:在 = 的右边,没名称,没法取地址,只是一个字面值或临时变量//左值:在 = 的左边.
2022-01-11 17:25:16
346
原创 Visual Studio查看C++内存泄漏方法
1. 使用vs启动程,点击工具栏中的:调试,选择:“显示诊断工具”2. 在右边浮动窗口中会出现:事件 | 内存使用率 | CPU使用率,选择:“内存使用率”3. 点击 “截取快照”,等待一段时间4. 再次点击 “截取快照”,如果在这期间存在内存泄漏,则会出现如下所示5. 点击括弧中的数字,会打开一个展示堆栈快照的窗口6. 选择:计数差异这一列中较大的项展开(大概率就是这里边内存申请了没有释放)7. 最后回到代码一行一行排...
2021-12-23 14:57:53
7129
原创 FFmpeg学习之测试QOpenGLWidget
步骤1. VS中创建Qt Widgets Application工程,继承自QWidget类2. 设置属性,添加QT模块opengl3. 双击项目中的ui文件跳转到QT设计师界面,将窗口中拖入一个OpenGL Widget控件4. 在右侧的对象查看器中右键上一步添加的控件,选择提升为,设置类名并 添加、提升5. 回到VS工具栏的 项目,选择 Add Qt Class... 设置类名(复制上一步的类名),继承自Q...
2021-12-10 16:36:55
602
原创 FFmpeg学习之QT音频播放
1. 创建工程时,添加QT的多媒体模块multimedia2. 主要使用到的QT类: QAudioFormat类创建输出音频格式对象,设置输出音频的样本率、样本大小、通道数、解码类型、字节序等参数;QAudioOutput类创建音频播放设备对象;QIODevice类创建IO操作对象;#include <QtCore/QCoreApplication>#include <QAudioFormat>#include ...
2021-12-09 16:59:54
1872
原创 FFmpeg学习之vs中创建qt项目
前面在环境搭建中已经记录过开发需要的工具、工程目录、配置等,现在记录一下在VS中创建QT项目需要注意的地方和遇到的问题。安装及创建工程 1. 在VS中创建QT项目,需要安装VS、QT、VS插件(qt-vsaddin-msvc20**.vsix) 2. 安装好插件后VS的工具栏会如下出现Qt VS Tools 3. 此时Qt VS Tools下边的按钮基本都是不可用的,需要设置QT版本 打开VS工具栏的Qt VS ...
2021-12-09 15:52:22
1293
原创 FFmpeg学习之视频像素和尺寸转换
1. 获取像素格式转换的上下文sws_getCachedContext2. 像素转换sws_scale#include <iostream>#include <thread>using namespace std;//测试解封装extern "C"{#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"}//
2021-12-08 17:06:17
2134
原创 FFmpeg学习之解码
avcodec_find_decoder()解码流程: 1. 首先调用解码注册函数 avcodec_register_all() 2. 调用获取解码器函数,获取解码器信息AVCodec * avcodec_find_decoder(enum AVCodecID id);AVCodec * avcodec_find_decoder_by_name(const char *name); 3. 创建...
2021-12-07 17:39:30
492
原创 FFmpeg学习之解封装
根据上篇的方法配置继续学习解封装#include <iostream>#include <thread>using namespace std;//测试解封装extern "C"{#include "libavformat/avformat.h"}//引用库#pragma comment(lib,"avformat.lib")#pragma comment(lib,"avutil.lib")#pragma comment(lib,"avcodec.li
2021-12-07 11:17:22
361
原创 FFmpeg学习之环境搭建(Windows)
工具及开发环境:Visual Studio 2015 Qt CreatorVs下载:官网下载或者MSDN下载Qt下载:官网 https://www.qt.io/ FFmpeg开发环境:官网 https://ffmpeg.org/download.html创建开发目录: 将FFmpeg压缩包中的bin、include、lib解压到开发目录中。创建VS项目:(仅用作验证下载的库和环境是否配置成功...
2021-12-07 11:00:30
982
原创 MySQL数据库官方文档
https://dev.mysql.com/doc/refman/5.7/en/mysql-library-init.html MYSQL local_mysql; int retValue = -1; if (mysql_library_init(0,NULL,NULL) != 0) { MessageBox(_T("mysql_library_init error !"));...
2020-01-13 15:19:38
499
原创 使用C++读写和添加.ini文件中的配置参数
关于如何读取和修改ini配置文件的文章挺多的,而且读写操作也简单,记录一下,再补充一点边缘的东西留一篇以后备用。一、如何读取和修改ini配置文件1. 头文件:#include <Shlwapi.h>2. 读写的三个函数/*************************************************************************...
2019-12-01 18:01:10
2642
原创 三、OpenCV自学笔记:图片的加载、修改及保存
一、运行环境环境是Visual Studio 2015和OpenCV4.0.1二、示例代码主要涉的函数:CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );简介:该函数将输入图像从一种颜色空间转换为另一种颜色空间。从而方便的在不同颜色空间下修改图片。#...
2019-10-27 17:25:51
144
原创 二、OpenCV自学笔记:图片的显示、腐蚀、模糊、边缘检测
一、 运行环境我这里是Visual studio 2015 + OpenCV 4.0.1,OpenCV3以上的应该都可以。二、 代码示例1.显示//显示一张图片void showImg(){ const char* ImgPath = "AWVS1455.JPG"; const char* WindowName = "原图"; Mat img = imread(Img...
2019-09-26 11:07:46
364
原创 C++ tinyXML源文件免费下载地址及常用操作
背景交代:tinyXML用过几次了,但每次找相关文件都很烦,虽然有些地方可以免费下载,还是上传一份这次找到的,防止以后再去找的时候迷路或收费。下载我上传的需要C币或者积分吧,这里给新人一个免费下载的地址吧:https://sourceforge.net/projects/tinyxml/我这里并没有使用下载的工程,只是将里边的:tinystr.cpp 、tinystr.h 、tinyx...
2019-09-23 16:01:31
897
原创 一、OpenCV自学笔记:显示图片与播放视频
一、运行环境环境是Visual Studio 2015和OpenCV4.0.1一般在VS里边就可以看到函数的功能及用法描述,你也可以查看官方文档来获取帮助。https://docs.opencv.org/4.0.1/二、示例代码1. 显示一张图片#include <opencv2/opencv.hpp>#include <iostream>usi...
2019-09-17 16:38:33
5431
6
原创 Visual Studio 2015下Opencv的安装、配置及测试
最近工作接触到了图像处理一块的东西,网上关于opencv安装配置的博客也挺多,但找到的经验并不是所有的都好用,有些大神写的太多反而看着懵逼,所以自己总结与精简了一下,以后再照着操作就好了。(特别认真的同学会发现下面安装的版本和配置截图的版本不是同一个版本,是因为我在不同的机器上对这篇博客做了修改,但这并不影响你的操作,按照流程对你的机器安装并配置工程就可以了)1. 官网下载 : http://...
2019-09-17 11:03:51
2238
原创 Git项目管理笔记
在以前公司用过一段时间Git提交代码,但没有怎么去了解,只知道几条指令,现在的工作中又需要用到Git控制版本了,所以就看了些相关资料,根据资料精简整理了一下会用到的部分,并作为笔记整理摘抄了下来,下次再看就不用到处找了。参考文献http://tinyurl.com/amazonprogit 。这里内容涉及到的知识点:Git的安装、Git用户邮箱配置、Git新建一个本地仓库、Git克隆一个仓库...
2019-09-04 10:28:26
160
QML的ListView如何访问代理内部的function
2023-04-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人