自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 【Qt】文字换行

它提供了现代文本布局引擎所期望的许多功能,包括 Unicode 兼容的渲染、换行和光标定位处理。它还可以生成和渲染与设备无关的布局,这对于所见即所得应用程序非常重要。该类具有相当低级别的 API,除非您打算为某些专用小部件实现自己的文本渲染,否则您可能不需要直接使用它。但此方法对于多语言文本不太友好,可以在超出文本框时添加省略符,方法如下。在Qt控件中经常遇到文字超出文本框,因此介绍几种换行方式。QTextLayout 可用于纯文本和富文本。

2024-07-23 16:00:49 279

原创 【GIt】变基(rebase)

首先要理解这个base,base也就是基础的意思,当我们从代码分支上获取代码的时候,我们就有了一个基础,也就是base,此后的修改我们都是在这个基础之上进行的,但是当我们需要提交修改的时候,遇到了别人的代码,变基这个操作就是在这个时候,我们不去合并别人的代码,而是直接把我们原先的基础变掉,变成以别人修改过后的新代码为基础,把我们的修改在这个新的基础之上重新进行。根据上面的原理可知,提交时需将本地的base修改为最新base,故此可以执行以下步骤。变基后,git时间线会呈一条直线,时间线变得非常干净。

2024-07-05 17:53:31 382

原创 【QT】Qt智能指针QPointer、QSharedPointer、QWeakPointer、QScopedPointer

PS:QSharedPointer 是线程安全的,因此即使有多个线程同时修改 QSharedPointer 对象也不需要加锁。虽然 QSharedPointer 是线程安全的,但是 QSharedPointer 指向的内存区域可不一定是线程安全的。手动管理堆分配的对象既困难又容易出错,常见的结果是代码泄漏内存,难以维护。它不会阻止对象被破坏,而只是重置。这只是一个辅助类,当指针超出范围时,它将删除引用的对象。因此,将动态分配的对象绑定到变​​量范围。如果指向的对象被销毁,它将自动设置为 nullptr。

2024-07-04 15:04:20 935

原创 【Git】LFS

Git 是分布式 版本控制系统,这意味着在克隆过程中会将仓库的整个历史记录传输到客户端。对于包涵大文件(尤其是经常被修改的大文件)的项目,初始克隆需要大量时间,因为客户端会下载每个文件的每个版本**。Git LFS(Large File Storage)是由 Atlassian, GitHub 以及其他开源贡献者开发的 Git 扩展,它通过延迟地(lazily)下载大文件的相关版本来减少大文件在仓库中的影响**,具体来说,

2024-06-29 14:26:29 406

原创 【QT】QTableView使用

QTableView是表格数据的可视化界面,负责展示和编辑数据。QStyledItemDelegate是连接视图和模型的桥梁,负责绘制和编辑表格单元格的内容。QStandardItemModel是数据的存储和管理者,负责提供数据给QTableView进行展示。这三个组件相互配合,共同实现了Qt框架中强大的表格数据展示和编辑功能。

2024-06-29 13:49:56 1067

原创 QLibrary::load、QPluginLoader::instance加载错误

vs链接器查看链接lib,exe同级目录下均有对应的dll;实现编译后事件,将依赖的dll拷贝,解决问题。“Cannot load library xxxPlugin.dll: 找不到指定的程序。

2024-06-27 10:08:44 357

原创 C++ Primer 中文版 第5版 读书笔记

分离式编译如果想声明一个变量而非定义它,就在变量前添加关键字extern// 声明i,而非定义iint j;// 声明并定义j任何包含了显示初始化的声明即成为定义。我们能给由extern关键字标记的变量赋一个初始值,但是这么做也就抵消了extern的作用。extern// 定义变量能且只能被定义一次,但是可以多次声明标准库类型string表示可变长的字符序列// 列表初始化// 错误注意字符串字面值的结尾处还有一个空字符如前所述,switch的执行流程有可能会跨过某些case标签。

2024-06-24 00:09:24 1089

原创 【C/C++】Code Style

如果不写override,那么当Base类把listen的接口改变的时候,编译器不会报错,甚至多数编译器连警告都不会有,这个时候程序运行的结果就会出错。有些警告特别致命,相当于编译器告诉你,这里十有八九出错了,但是根据标准我不能管你,只能提示你,你自己看着办。尽可能使用stl里面的算法,不要自己手写相同功能的算法,不仅很难写的比stl好,还容易有bug,不好排查。也就是说,如果某个函数占50%的运行时间,你把他速度提升到了原来的两倍,那么根据这个公式,当你不知道具体要catch什么异常时,就不要try了。

2024-06-22 18:00:39 318

原创 【QT】Svg图标

那如何才能显示svg呢?我们知道svg的好处有很多,如矢量图,体积小等等。一般而言,QSS是无法直接使用svg图像的。svg本来就是一个document(可参考。用于访问svg doc。

2024-06-22 17:56:55 377

原创 【QT】实现无边框窗口+可拖动+可调整大小

通过鼠标移动中,计算窗口左上角位置,实现移动。通过计算,可将鼠标坐标系换算成窗口坐标系中。当实现无边框之后,你会发现无法拖动了。获取鼠标在屏幕中坐标,原点为屏幕左上角。或许我们需要了解下窗口是怎么被拖动的。是一个常量,表示鼠标在窗口的标题栏上。同上,重写nativeEvent即可。获取鼠标在窗口坐标系中位置。获取鼠标在屏幕坐标系中位置。获取窗口左上角x坐标。

2024-06-21 00:15:57 763 2

原创 【C/C++】相机标定

参考文章相机标定(Camera calibration)原理、步

2024-06-08 23:01:52 326

原创 最小二乘法-拟合平面方程

最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。给你一些点,拟合出最佳直线或者拟合出最佳平面。本文介绍的是最小二乘法。最小二乘法(又称最小平方法)是一种数学优化技术。求解上述方程即可得到结果。一般而言空间平面方程如下。

2024-06-08 22:55:04 419

原创 UML之用例图

统一建模语言(UML)是一种通用的可视化建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。UML是独立于过程的,它适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。注:UML不是一种程序设计语言,其描述的模型可以和各种编程语言相联系。一个完整的用例模型应该不仅仅包括用例图部分,还要有完整的用例描述部分。用例名称:描述用例的意图或实现的目标,一般为动词或动宾短语。用例编号:用例的唯一标识符,在其他位置可以使用该标识符来引用用例。

2024-06-08 21:30:53 606

原创 Python 脚本打包

打包。

2024-06-06 23:46:30 570

原创 Pyhon Anaconda环境安装

Anaconda,中文大蟒蛇,是一个开源的Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。Anaconda就是可以便捷获取包且对包能够进行管理,包括了python和很多常见的软件库和一个包管理器conda。常见的科学计算类的库都包含在里面了,使得安装比常规python安装要容易,同时对环境可以统一管理的发行版本。主要有开源、安装过程简单、高性能使用Python和R语言、免费的社区支持有优势。市面上此类文章太多了,这里就不赘述了。

2024-06-06 23:18:32 245

原创 【QT】Qt Plugin开发

插件的应用场景,一个大型项目的开发离不开插件化,可以让整个框架结构更加清晰和容易理解,比如说一个该项目经常会针对不同客户做功能定制,或者对于软件使用的不同场景,功能有所区别,那这时候插件就变得非常有用了,主工程中包含所有功能模块的调用,但是如果某些功能如果不需要,那最终程序打包只要不把插件的dll打包进去就OK了,程序依然可以正常运行,只是该插件的功能无法使用而已。:也叫载入时加载,是在编译的时候,指明所依赖的动态链接库,这样在程序启动的时候,loader会将所有的动态链接库映射到内存中。

2024-06-05 23:51:55 1296 2

原创 C++/C 线性插值

设为待求象素坐标(x+u,y+v) ,【注:x,y为整数, u,v为大于零小于1的小数】则待求象素灰度的值 f(x+u,y+v)为 ,选取距离插入的像素点(x+u, y+v)最近的一个像素点,用它的像素点的灰度值代替插入的像素点。而灰度值未知的插值点 x,根据线性插值法约束,在 (x0, y0) 和 (x1, y1) 构成的一次函数上,其灰度值 y 即为。插值,是根据已知的数据序列(可以理解为你坐标中一系列离散的点),找到其中的规律,然后根据找到的这个规律,来对其中尚未有数据记录的点。

2024-05-31 10:43:10 1054

原创 相机-景深

百度百科中关于景深(depth of field)的定义是:摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。个人理解:拍摄最清楚的一段距离称为景深。

2024-02-27 10:08:08 715

原创 C++ 继承

但是子类的指针如果指向父类,访问_name和_age时不会有问题,访问到_num时就会超出父类对象的范围,越界访问,所以编译器禁止了子类指针指向父类对象。PS:构造和析构调用顺序,构造子类对象时,先调用父类的构造函数,再调用子类的构造函数,清理对象时,先调用子类的析构函数,再调用父类的析构函数。简单来说:基类实际上是派生类的共性,将其它类都有的属性和方法进行提取,再定义其它类时只需要继承父类,并写出该类独有的属性即可。继承是类设计层次的复用。,这样产生的类,称为派生类,被继承的类称为基类或父类。

2024-02-19 22:09:30 920

原创 2023年总结

年后回到杭州,总算有些紧张心情,也恰恰是“时不待我”,整个行业经济下滑,招聘的很多,面试却没几家,后来面了yj,心里还是很慌张,匆匆面完,感觉这个公司还可以,面试官也说了20%软件,40%渲染,40%算法,我一度以为这就是说我之后的工作呢,一顿高兴,殊不知,“螺丝钉”只能做一个工作。一直到年底,工作平平,频频工作,加班是常态,休息是变态。5月年会+旅游,发生了一些狗血的事情,或许有些新人入职两年都碰不到,没想到入职一个月让我亲身经历,也算是涨涨见识,哈哈哈。春节期间,回家过年也是无心学习。

2024-02-14 18:18:36 136

原创 C 检查小端存储还是大端

我们首先定义了一个无符号整数i并将其初始化为1。然后,我们创建了一个字符指针c并将其指向i的地址。由于c是一个字符指针,所以它只会指向i的第一个字节。如果系统是小端字节序,那么最低位字节将被存储在内存的最低地址,所以。如果系统是大端字节序,那么最高位字节将被存储在内存的最低地址,所以。该程序就是利用了强转舍弃。

2024-02-05 00:11:22 596

原创 C语言联合体将两个8位数据合成一个16位数据

将一个字节数据合成多字节数据,使用场景不多,但总会遇到。

2024-02-05 00:02:31 1538

原创 C++ 匿名函数

匿名函数,顾名思义就是没有名字的函数,又名Lambda。为什么使用匿名函数,优点如下。

2024-01-24 00:09:10 2574

转载 Visual Studio 不能进入断点、未命中断点、断点不可用

在项目中打了断点后,Debug调试中,断点就变成“未命中”状态,断点提示“当前不会命中断点,还没有为该文档加载任何符号”。1.打开项目属性页→配置属性→链接器→调试→生成调试信息,若其中的生成调试信息项为“否”,改为“是(/DEBUG)”。确定保存后再调试看是否解决。3.打开项目属性页→配置属性→C/C++→常规→优化,禁用代码优化功能,此处注意窗口左上角最好不要配置到“所有配置”或者“Release”中去。2.打开项目属性页→配置属性→C/C++→常规→调试信息格式,不能是“无”或者“禁用”。

2024-01-23 11:01:45 138

原创 C++左值和右值

c++中根据表达式使用场景不同,分为左值和右值(其实还有将亡值)。左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。很多人认为它们分别是"left value"、“right value” 的缩写,其实不然。lvalue 是“locator value”的缩写,可意为存储在内存中、有明确存储地址(可寻址)的数据,而 rvalue 译为 “read value”,指的是那些可以提供数据值的数据(不一定可以寻址,例如存储于寄存器中的数据)。

2024-01-23 00:32:19 386

原创 c++ auto

使用auto会帮助我们大大缩减代码长度(我是这么认为的doge)

2024-01-21 23:11:03 418

原创 C++ const使用

const表示可读,但不能修改修饰的内容不同,自然有不同的作用。

2024-01-21 22:45:23 364

原创 【QT】QThread 成员函数

注意:在 Windows 上,此函数返回由 Win32 函数 GetCurrentThreadId() 返回的 DWORD(Windows 线程 ID),而不是由 Win32 函数 GetCurrentThread() 返回的伪 HANDLE(Windows 线程 HANDLE)从不检查或操作此函数返回的值是安全的,但建议在长时间运行的函数中定期这样做。此函数不会停止线程上运行的任何事件循环,也不会以任何方式终止它。函数,而run内的内容就是子线程执行的内容,除此之外,其他成员函数的执行均在原线程。

2024-01-17 12:41:05 623

原创 常用代码注释

【代码】常用代码注释。

2024-01-12 14:40:43 411

原创 c++ define 用法

宏定义分为有参和午餐,一般而言无参更多用constexpr代替无参#define 标识符 字符串// example有参#define 宏名# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)

2024-01-12 00:22:28 484

原创 c++ 智能指针 shared_ptr

接着上篇。

2024-01-04 23:16:59 390

原创 c++ 智能指针 unique_ptr

使用指针时很容易出现内存泄漏,便引入了智能指针,c++ 11中主要有三类。

2024-01-04 22:50:23 569

原创 c++ 填充字符 memset fill

原因:memset中的val是采用无符号形式字符形式表示,即val为多少,只取一个低位字节至于为什么0和-1就可以了,建议看下内存中数据存储方式(补码)0 -> 补码: 0000 0000 0000 0000 0000 0000 0000 0000-1-> 补码: 1111 1111 1111 1111 1111 1111 1111 1111。

2024-01-03 00:51:08 664

原创 C++类模板的声明和定义为什么要放在同一个文件

ps:模板是在需要的时候,才会去生成一个具体化的实例的,比如,你只要一个int型的实例,模板就只会给你生成一个int型的实例,模板本身是不会被执行的(也就是模板本身不产生汇编指令),是模板生成的具体化实例才产生指令(这个实例是隐藏的,我们是看不到的)1、C++编译器在编译代码时是以cpp为单位的,参与编译的只是.cpp文件,不会报错的原因,是因为它能在.h里面找到模板的声明。2、而模板的实现.cpp里面,虽然有模板的具体实现,但是没有谁在该.cpp里面使用一个模板函数,就不会生成一个具体化的实例。

2023-12-27 18:08:11 438

原创 c++ 遍历文件夹

本人使用该方法无法遍历,hFile值为1,不明就里。使用_findfirst和_findnext。不得不说winapi大法好。

2023-12-27 16:00:20 485

原创 c++ 记录耗时类

【代码】c++ 记录耗时类。

2023-12-27 11:32:04 340

原创 c++ 日志类

【代码】c++ 日志类。

2023-12-27 11:30:56 420

原创 c++ 控制台 活动指标 进度条

第一版光标会闪烁,因此改进,完成第二版。

2023-12-13 15:57:00 400

原创 Python Plot 内容整理

matplotlib.pyplot的使用总结大全(入门加进阶)Matplotlib 线型,线色,图形标注Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签Matplotlib中annotate详解Matplotlib之标注图像的annotate和text函数Python-Matplotlib可视化(4)——添加注释让统计图通俗易懂matplotlib调整子图间距,调整整体空白

2023-10-27 10:10:29 42

原创 vector内容整理

C++语言之vector内存分配技术C++vector的reserve和resize比原来的容量小【C++】vector的reserve()和resize()用法vector 删除元素的几种方法std::vector.resize()函数修改vector大小和新增元素,不影响已有元素

2023-10-26 21:34:35 37

空空如也

空空如也

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

TA关注的人

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