自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贝勒里恩的博客

日拱一卒,点滴记录

  • 博客(542)
  • 资源 (8)
  • 收藏
  • 关注

原创 理解C++的【内部链接】和【外部链接】

描述:一个声明将一个名称引入一个作用域声明可以理解为,我现在声称有这个东西,但是这个东西具体是啥样,我不清楚。C++中在同一个作用域中可以重复声明,除了类中的成员函数与成员变量的声明//外部引用声明// typedef声明Class A;//类的前置声明//名字空间引用声明friend f;//友元声明//函数前置声明描述:定义决定了一个实体在一个作用域的唯一描述定义可以这么理解,声明是声称有这个东西,但是具体是啥样还不清楚;定义就清清楚楚、明明白白的告诉你,这个东西是啥样。同一作用域。

2024-09-04 10:55:52 781

原创 Qt插件开发总结7--插件通信升级【多线程通信】

一文中详细讲解了,插件-插件通信、插件-主程序通信。但是这样虽然实现了通信,但是存在一定的弊端,之前的通信结构如下所示:插件和主程序都必须依靠【插件管理器】作为中转站,来相互通信。如果一旦通信比较密集,那么插件管理器肯定负载跟不上,那通信的效率就会变得很慢,可以理解这是半双工通信,即同一时刻,只能有一个人在收或发。为此,我们必须改变现有结构,来实现更高效率的通信。

2024-08-30 17:30:42 1100

原创 Qt插件开发总结6--插件间依赖

插件大致可分为:功能性插件、界面插件;一个软件由一堆插件堆起来,必然难以避免插件间相互引用,例如:插件A调用了插件C中的功能,那么插件A就依赖插件C,所以在程序启动加载插件时,就应该先加载插件C,再加载插件A。如果插件A是用于初始化的模块,插件C是用于检测软件序列合法性的模块,如果先加载插件A,并直接调用功能模块,那么检测软件序列合法性这部分功能就是缺失的,所以必须要检测插件间的依赖关系,并排列插件加载顺序,才能使得软件功能正常。但是插件依赖,不能形成死锁,例如:有向环。

2024-08-30 13:00:08 1320

原创 Qt线程控制【启动、暂停、继续、退出】

在我很久之前的文章【】中,已经论述过Qt中使用线程的两中方式了。在子线程中,我们往往希望它干一些费时的任务,所以经常会需要使用死循环。或者是。

2024-08-09 15:01:50 1081

原创 ffmpeg将视频转换成图片

视频转换格式(将avi格式转成mp4格式)第二种方法生成的图片大小为260kb左右。第一种方法生成的图片大小为50kb左右。将视频按指定帧数分割成图片。

2024-07-31 13:01:41 582

原创 Linux下Qt程序打包

在Windows下进行Qt开发,软件开发好之后可以使用windeployqt进行打包,然后程序就可以移动到其它电脑上运行了在Linux下同样可以进行打包,使用linuxdeployqt。

2024-07-15 17:14:22 1154 1

原创 QtXlsx库编译使用

之前在Windows上进行Qt开发,需要编辑excel文件时,使用axcontainer模块即可。但是axcontainer模块是Qt用来调用com组件的容器,而com的概念只在Windows中才有,因此在Linux无法使用。QtXlsx源码下载QtXlsx是可以读取和写入Excel文件的库。它不需要Microsoft Excel,并且可以在Qt5支持的任何平台中使用。从头开始生成新的.xlsx文件从现有的.xlsx文件提取数据编辑现有的.xlsx文件。

2024-05-27 11:39:30 1406

原创 Linux下使用Qt + libpcap

Libpcap是的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。Libpcap提供了用户级别的网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap可以在绝大多数Linux平台上运行。Wincap。它的工作在上层应用程序与网络接口之间。数据包捕获:捕获流经网卡的原始数据包。

2024-05-16 17:01:57 1351

原创 VS2017搭建Qt开发环境

2、E1696 无法打开源文件 “ui_QtWidgets.h” QtWidgets。直接点击安装即可,安装好之后关闭VS,等待升级成功即可!3、VS 2017安装Qt插件。2、安装Qt 5.14.2。1、Qt无法打开ui文件。1、安装VS 2017。

2024-04-22 12:41:05 763

原创 安装IntelliJ IDEA

工欲善其事必先利其器,学习JAVA的第一步,首先是安装IDE,配置环境;常用的JAVA IDE是IntelliJ IDEA和eclipse,我选择IntelliJ IDEA。

2024-04-21 18:52:11 879

原创 Qt编译Assimp

到目前为止,我们在OpenGL中一直是在跟容器盒子打交道,有些许的枯燥。我们也可以导入别人搭建好的、漂亮的模型,因此,我们的工作就是去解析这些导出的模型文件,并将其中的模型数据存储为OpenGL能够使用的数据。一个常见的问题是,导出的模型文件通常有几十种格式,不同的工具会根据不同的文件协议把模型数据导出到不同格式的模型文件中。有的模型文件格式只包含模型的静态形状数据和颜色、漫反射贴图、高光贴图这些基本的材质信息,比如Wavefront的.obj文件。

2024-04-19 18:15:13 1387 5

原创 3、MATLAB中矩阵和多维矩阵介绍

在MATLABexpression可以是由数字、变量、操作符和函数等组成;例如:a = 1 + 1,定义了一个变量a在MATLAB,定义矩阵,使用方括号[ ],同一行之间的元素用逗号‘ , ’或者空格‘ ’来分隔,行与行之间用分号‘;’来分隔例如:a = [1,2,3;4 5 6]定义行向量:a = [1,2,3]定义列向量:b = [1;2;3]

2024-04-18 15:23:40 1296

原创 2、MATLAB入门常用命令

一、退出和中断exit和quit:结束MATLAB会话。程序完成,如果没有明确保存,则变量中的数据丢失。Ctrl + c:中断一个MATLAB任务。例如,当MATLAB正在计算或打印时,中断一个任务,但会话并没有结束。二、常用清除命令clc:清空命令行内容;clear:清空工作空间wrokspace的所有变量;clear all:清除工作空间的所有变量,函数,和MEX文件(比clear更彻底);clf:清除所有图表的内容;clf(1):清除图表1的内容;close all:关闭所

2024-04-18 14:48:56 1008

原创 1、MATLAB介绍

工具箱可应用于特殊的应用领域;

2024-04-18 14:29:59 398

原创 Qt使用miniblink第三方浏览器模块

Qt编写地图综合应用58-兼容多浏览器内核用Qt做项目过程中,遇到需要用到浏览器控件的项目,可能都会绕不开一个问题,那就是从Qt5.6版本开始mingw编译器的Qt构建套件,不再提供浏览器控件了,之前还可以用webkit。

2024-04-16 11:32:18 1399

原创 echarts快速入门

1、在绘图前我们需要为 ECharts 准备一个定义了高宽的 DOM 容器。echarts是百度研发团队开发的一款报表视图JS插件,功能十分强大,可在。但是不要担心,打开控制台确认没有报错信息,就可以进行下一步。// 基于准备好的dom,初始化echarts实例。// 基于准备好的dom,初始化echarts实例。// 使用刚指定的配置项和数据显示图表。// 使用刚指定的配置项和数据显示图表。// 指定图表的配置项和数据。'ECharts 入门示例'// 指定图表的配置项和数据。

2024-04-03 15:34:11 1366

原创 STM32单片机学习5--STM32中断

单片机无系统执行逻辑:main函数–>while死循环:外部中断,通过GPIO检测输入脉冲,引起中断事件,打断原来的代码执行流程,进入到中断服务函数中进行处理,处理完后再返回到中断之前的代码中执行。

2024-01-23 18:00:43 1212

原创 STM32单片机学习4--STM32控制八段码

八段码一般会引出9个引脚,其中7个引脚显示数字(或某些字母),1个显示小数点,1个作为片选端。数码管:实际上是多个LED按照一定顺序排列,并加上遮罩所构成的元件。共阳在这端输出低电平时点亮,高电平时会熄灭,共阴则相反。根据连接方式的不同,数码管分为。共阴和共阳互为对方的按位取反。

2024-01-23 15:05:03 890

原创 QGraphicsItem器件移动及旋转相关问题

官方注释:在父坐标系中根据坐标pos设置图元的位置。如果图元没有父图元,pos就是场景坐标系。当然,也可以从构造函数中传递参数设置父子层级。

2023-12-29 16:31:51 689

原创 跟着LearnOpenGL学习12--光照贴图

在跟着LearnOpenGL学习11–材质中,我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观,但是这仍不能对一个物体的视觉输出提供足够多的灵活性。我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成。想想一辆汽车:它的外壳非常有光泽,车窗会部分反射周围的环境,轮胎不会那么有光泽,所以它没有镜面高光,轮毂非常闪亮(如果你洗车了的话)。

2023-12-26 16:28:18 1355

原创 跟着LearnOpenGL学习11--材质

在现实世界里,每个物体会对光产生不同的反应。比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。有些物体反射光的时候不会有太多的散射(Scatter),因而产生较小的高光点,而有些物体则会散射很多,产生一个有着更大半径的高光点。如果我们想要在OpenGL中模拟多种类型的物体,我们必须针对每种表面定义不同的材质(Material)属性。在跟着LearnOpenGL学习10–基础光照这一篇中,我们定义了一个物体和光的颜色,并结合环境光与镜面强度分量,来决定物体的视觉

2023-12-26 13:00:37 1270

原创 跟着LearnOpenGL学习10--基础光照

现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,这样处理起来会更容易一些,而且看起来也差不多一样。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。环境光照(Ambient):即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会是完全黑暗的。

2023-12-25 10:45:22 973

原创 跟着LearnOpenGL学习9--光照

现在,如果我们使用绿色的光源又会发生什么呢?

2023-12-22 15:26:56 979

原创 C/C++ 静态代码检查工具cppCheck

Cppcheck是一个用于C/C++代码的静态分析工具,它可以帮助开发者检测代码中的错误;Cppcheck可以检测出许多类型的错误,包括语法错误、未使用的函数、内存泄漏、未初始化的变量等;Cppcheck还支持用户自定义规则,这使得开发者可以根据自己的需求定制Cppcheck的行为;使用--suppress如果你想要忽略某些警告,可以在命令行中使用 --suppress 选项。

2023-12-13 16:16:15 2430 2

原创 C++测试代码运行时间

【代码】C++测试代码运行时间。

2023-12-05 11:23:50 244

原创 批处理下载视频

如果我们需要下载同一个系列的多个视频时,一个一个操作太过繁琐,可以使用Windows的批处理来进行操作。例如,打开B站,随便点开一个视频,把网址复制一下,然后打开。之后,我们就可以使用命令行下载视频文件了;视频网址直接【Ctrl + V】粘贴就行。,然后回车,视频就会下载到。annie 视频网址。

2023-07-25 11:26:53 441

原创 跟着LearnOpenGL学习8--摄像机

前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。本节我们将会讨论如何在OpenGL中配置一个摄像机,并且将会讨论FPS风格的摄像机,让你能够在3D场景中自由移动。我们也会讨论键盘和鼠标输入,最终完成一个自定义的摄像机类。当我们讨论摄像机/观察空间(Camera/View Space)的时候,是在讨论以摄像机的视角作

2023-06-13 15:59:26 948

原创 Qt嵌入外部进程

Qt可以嵌入任意外部.exe程序。

2023-06-09 15:28:54 2644 5

原创 跟着LearnOpenGL学习7--坐标系统

OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐标。然后将这些标准化设备坐标传入光栅器(Rasterizer),将它们变换为屏幕上的二维坐标或像素。

2023-06-07 11:33:36 901

原创 跟着LearnOpenGL学习6--变换

尽管我们现在已经知道了如何创建一个物体、着色、加入纹理,给它们一些细节的表现,但因为它们都还是静态的物体,仍是不够有趣。我们可以尝试着在每一帧改变物体的顶点并且重配置缓冲区从而使它们移动,但这太繁琐了,而且会消耗很多的处理时间。我们现在有一个更好的解决方案,使用(多个)矩阵(Matrix)对象可以更好的变换(Transform)一个物体。矩阵是一种非常有用的数学工具,尽管听起来可能有些吓人,不过一旦你理解了它们后,它们会变得非常有用。为了深入了解变换,我们首先要在讨论矩阵之前进一步了解一下向量。

2023-06-05 17:48:18 1150

原创 跟着LearnOpenGL学习5--纹理

通过前面着色器博文的学习,我们已经了解到,我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每个模型都会需求更多的顶点,每个顶点又需求一个颜色属性。为了解决这一问题,我们可以使用纹理,纹理是一个2D图片(甚至也有1D和3D的纹理),纹理可以理解为贴图,将图片贴到我们创建的几何图形上。你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。

2023-06-01 15:56:29 1337

原创 跟着LearnOpenGL学习4--着色器

在之前绘制三角形的博文中,我们已经接触到了着色器,但是肯定有许多疑问,本文来详细了解一下着色器!着色器(Shader)是运行在GPU上的小程序,这些小程序为图形渲染管线的某个特定部分而运行;从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。

2023-05-12 16:45:13 1348 1

原创 跟着LearnOpenGL学习3--四边形绘制

通过一文,我们已经知道了怎么配置渲染管线,来绘制三角形;OpenGL主要处理三角形,当我们需要绘制别的图形时,例如:四边形,应当用三角形去拼接,组成我们想要的四边形;

2023-05-11 13:59:54 1131

原创 跟着LearnOpenGL学习2--三角形绘制

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线管理的。第一部分把你的3D坐标转换为2D坐标;第二部分是把2D坐标转变为实际的有颜色的像素;

2023-05-11 12:19:22 1011

原创 跟着LearnOpenGL学习1--环境搭建

LearnOpenGL网站上采用的是GLFW这个库来进行OpenGL开发,所以我们需要配置GLFW和Glad;由于本人更习惯使用Qt Creator进行开发,所以后面的都是在Qt平台上进行写代码!

2023-05-10 16:00:11 738

原创 Qt配置glfw库(Windows)

将下载的glfw库文件夹中的include、lib-mingw-w64复制到新建的。切换到工程文件(*.pro),鼠标右键–>【添加库】在工程路径下新建一个文件夹。

2023-05-10 12:22:44 1952 1

原创 OPenGL学习--库介绍

OpenGL被定义为 “图形硬件的一种软件接口”;从本质上讲,它是一个3D图形和模型库,具有高度的可移植性,并且具有非常快的速度;使用OpenGL,可以创建爱你优雅而漂亮的3D图像,并且具有非常出色的视觉质量;使用OpenGL的最大有点是它的速度远远快于光线追踪器或软件渲染引擎;

2023-05-08 16:38:38 4658

原创 OPenGL笔记--术语

将数学和图形数据转换成3D空间图像的操作;

2023-05-08 12:27:12 888

原创 OPenGL笔记--创建一个3D场景

通过前面的学习,基本掌握了怎么绘制图形,使用纹理,接下来就来创建一个3D场景。基本原理一个复杂的场景肯定是由一些简单的图形,通过某种组合方式构建起来的,在OPenGL中也不例外;例如:在绘制立方体的时候,立方体也是由6个正方形围起来的;基本图形由于显卡在渲染三角形时效率较高,所以我们采用三角形来构建复杂的3D场景;数据结构当您想要使用一系列的数字来完美的表达3D环境时,随着环境复杂度的上升,这个工作的难度也会随之上升;

2023-05-06 13:32:18 2229

原创 QML控件--MenuBar

还提供 API 来动态添加、插入、删除和获取菜单。:是菜单栏,通常,菜单静态声明为菜单栏的子项,但。访问菜单栏中的菜单;

2023-04-21 14:48:12 969

WinPcap中文文档

WinPcap中文文档

2022-02-22

ipad_frame.zip

Qt实现的ipad框架,支持滑动效果

2021-01-10

QLineBoard.zip

Qt自定义控件QLineBoard,一个输入框,一点击就弹出键盘,可以在键盘中点击输入

2020-12-26

基于Qt自定义的滑动选择器

这是基于Qt实现的自定义滑动选择器,滑动选择器支持两种模式:水平模式和垂直模式,可自行设置。另外提供了接口可设置各类颜色、选择器值域等。

2020-05-26

基于QT的界面滑动切换

这是模仿手机界面的平滑切换工程,在工业触摸板上很有实用价值。具体效果可以去我的博客看, 。

2020-05-19

基于QT开发的无触摸屏系统按键解决方案

这是大三嵌入式课程的一个实验题目,主要是在树莓派上用QT开发一个控制界面,控制小灯的亮灭,呼吸灯等等。这个题目主要是在于练习QT的绘图功能,也可以用来应对无鼠标无触摸屏等工程现场。

2020-02-14

基于QT开发的TCP服务器

这是一个基于QT开发的TCP服务器,这是我之前服务外包大赛的时候写的,运行效果良好,欢迎大家一起学习讨论。

2020-02-13

基于QT开发的简易智能家居系统框架

这是一个基于QT开发的智能家居简易框架,整体框架已经架构好,可以继续向外扩展功能界面。

2020-02-13

空空如也

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

TA关注的人

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