自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 6. 使用VUE实现前端页面的分级嵌套

比如,一个网页的菜单栏和主题内容展示,往往菜单栏区域的导航按钮占用的空间是固定不动的,当用户点击不同按钮时,在内容区会分别展示不同的页面内容。上述代码可以实现一级页面和二级页面之间的嵌套显示,如果在二级页面中也需要动态展示不同的页面,那么相当于在二级页面中也需要像上述操作一样添加并注册属于二级页面的子页面(三级页面),如果在三级页面也有需要动态展示的,那就以此类推进行代码结构的设计。的加载,那么如果想在首页中额外开辟一个区域,用于放置后面需要显示的所有页面,就需要将这些页面注册成为首页的子页面。

2025-03-26 13:30:00 604

原创 5. 前后端实现文件上传与解析

在实际开发中,比较常见的一个功能是需要在前端页面中选择系统中的某个文件上传到服务器中进行解析,解析后的文件内容可以用来在服务器中当作参数,或者传递给其它组件使用,或者需要存储到数据库中。所以本文就提供一种方式来实现这样的功能。主要需要完成两步骤:一是前端实现文件上传,二是后端实现文件接收与保存。说明:前端框架是vue2,具体框架代码可以参考前面的系列文章。首先,前端负责文件上传的控件直接使用。之后,就是实现上面为。

2025-03-10 20:30:00 331

原创 4. 前端实现数据表格自定义展示

控件来做很方便,如果想把数据按照自己想的样式进行展示,可能需要在此基础做额外的处理。本文中使用比较常用的方法,借助。当然实际项目开发当中,可能需要将数据以更特殊的方式展现,读者可参考本博客进行改造,应该也是能够实现大部分需求的。代码的整个框架可以查看本系列博客的第一篇文章,里面有具体介绍,此篇文章只给出具体功能实现的相关的代码。然后,在自己所需要创建表格展示的地方使用。将数据以表格的形式展现到网页上,使用。基础组件库,所以需要进行引用,只需在。

2025-03-06 14:23:46 369

原创 3. 前后端实现压缩包文件下载

在数据管理当中,批量处理某些文件,并以压缩包的形式在前端进行下载是很常见的功能,本文将简要讲述如何实现此功能,主要包括后端文件的整合与发送,前端文件的接收与下载。此处只做简单测试,前端页面的整体代码可根据项目需要自行设计,这里只给出响应方法实现,比如为一个按钮添加点击事件的处理方法,相关代码如下;结束,没啥问题应该是可以实现功能的。

2025-03-03 17:47:50 410

原创 2. 在后端代码中加入日志记录模块

日志模块基本上是每一个软件系统开发中必不可少的,主要用于持久记录一些代码运行中的输出信息,辅助编码人员进行代码调试,以及后期软件上线运行报错分析。在Python中加入日志模块比较简单,只需要借助。运行上述代码,即可记录相关日志。

2025-02-28 17:32:44 301 1

原创 1. 搭建前端+后端开发框架

其中MySQL主要用来存储需要的数据,在本文中搭建基本框架时不做说明,后续该专栏系列的文章会根据情况做简要介绍。至此,一个完整的前后端开发的基本框架已经搭建完毕,打开终端,输入*** npm run serve***,运行前端代码后,即可看到弹窗提示,显示出参数“123456”。第一步:在前端框架搭建之前,需要做一个基本的VUE环境配置,并新建一个基于VUE2的项目,这些可以自行百度。第五步:上面创建了一个子视图界面后,需要告诉路由router这个子视图是属于哪一个路由占位符的,所以还需要在。

2025-02-28 15:08:18 569

原创 7. 数组的动态创建

简单记录一下c或c++动态创建数组的方式,在一般情况下,程序当中设置了数据类型的变量后,会直接给定其大小并初始化,但是在某种情况下可能需要根据某个参数来动态的设置数组的大小,此时就需要使用动态创建数组的方式。

2025-02-23 17:56:46 225

原创 60. 使用QTextStream向文件中写入指定格式内容

本篇博客简单记录如何使用QTextStream将想要保存的内容,以指定格式保存到文件中,方式比较简单,直接看代码的使用方式即可。

2024-12-22 15:52:22 82

原创 59. 关于QString的一些基本使用方法

本篇文章主要记录一下在使用QString编辑字符串时,经常使用到的一些函数,可以帮助我们快速的对字符串进行处理,文章不做太多说明,直接看代码中的注释即可,注释写的也比较清楚了。

2024-12-22 14:47:00 54

原创 6. 进程间通信方式 --- 命名管道

进程间通信方式之一是采用管道的方式就行数据传输,管道分为两种,一种是匿名管道,一种是命名管道,匿名管道仅限于本地父子进程之间的通信,而命名管道可以在不同进程之间进行通信,本篇文章将简单记录命名管道通信的实现方式。编译代码后,先运行写管道程序,再运行读管道程序,即可达到效果。

2024-12-14 17:59:06 258

原创 11.关于vim编辑器的简单配置

在linux系统中编辑文件内容的方式有很多种,比如直接在系统中暗中某些IDE,方便快捷,也可以直接在windows系统中编辑好文件后上传到linux系统中,这些方式对于编写内容较多的文件或者整个项目的文件还是非常适合的。开启上面的设置后,使用vim编辑器在终端上编辑内容时,输入一个左括号 (,会自动补全右括号 ),其它符号的成对补全也是类似的设置。为了方便使用vim编辑器,这里记录一些简单的配置,是对vim的排版格式进行了设置,让整个页面内容看着更加符合审美。编辑器直接在终端上编写文件内容。

2024-12-09 21:59:11 357

原创 5. fprintf和fscanf的使用 -- 以指定格式写入 / 读取文件中内容

项目中有时会需要从某个文件中保存或者读取指定的配置内容,而且在文件中一般是按照实现指定好的格式进行保存的。那么,在linux系统中提供了两个比较有用的函数,可以很方便的实现文件中固定格式的内容读写操作,分别是。

2024-12-07 15:59:15 421

原创 58.使用QDateTime定期清理文件

在实际项目开发当中都会涉及到日志系统的开发,将一些软件运行期间的报错信息或者操作信息以日志的形式保存下来,当软件长时间运行之后会产生很多的日志文件,时间久了会占用大量的内存。那么,可以利用QDateTime定期清理这些不需要的文件,本博客将简单记录如何实现这一小功能。

2024-10-27 16:56:21 117

原创 4、define和typedef在CPP中的一点使用小技巧

define IN//a为出入参数,b是要输出的参数b = a * 2;return b;这种情况,目前遇到的情况是定义函数指针变量//定义普通的函数指针类型int main()//存储对应的函数名(Func是上面使用typedef定义的变量),函数描述,函数id。

2024-10-20 20:10:51 347

原创 57. QT中简单实现发布订阅机制

发布订阅机制可以说是一种消息通信的方式,用于构建分布式系统中不同组件之间的通信,MQTT就是利用这个模式实现的。有了订阅者和发布者之后,订阅者可以订阅某一个主题,发布者也可以根据某个主题进行消息发送,但是订阅者和发布者彼此之间是不知道对方有那些主题可以订阅和发布,那么就还需要一个中间者来存储这些可以被订阅和发布的主题,和当前主题对应的处理动作,本博客中创建了一个。首先,在上面的操作中已经创建了订阅者和发布者的抽象类,此时就需要根据各自的抽象类创建具体的发布者个订阅者,在具体的发布者和订阅者中都会维护一个。

2024-10-06 14:25:16 594

原创 56. QTreeWidget的基本使用

首先,创建一个常规的QT项目,并在UI文件中拖入一个treewidget控件,做简单布局即可。运行代码即可实现预期效果。

2024-10-01 19:13:15 116

原创 55. QTableWidget的基本使用

在软件界面开发中,基本上离不开数据的展示以供客户查看一些比较关注的信息,比如公司做一个员工个人信息管理系统,需要一个界面能够展示员工个人基本信息,实现这种效果可以采用多种形式,其中比较简单的一种是使用QT提供的QTableWidget控件,这个控件已经封装了一些比较常用且基础的函数供开发者使用。其次,需要创建一个类并继承QItemDelegate,以此来设计表格中想要展示的控件的样式,实现自定义需要重写基类QItemDelegate的五个虚函数,每个函数的用途细看注释说明,上述代码运行,即可实现预期效果。

2024-09-21 19:16:13 147

原创 54. QButtonGroup的基本使用

在使用QT开发小软件时,使用最多的控件也许就是Button按钮了,一般情况下在界面上添加了一个Button,都会为这个Button添加一个相应的信号槽相应其点击事件。那么,如果在软件的其中一个界面添加了很多个Button,比如自定义的侧边菜单栏里可能会放置很多Button控件,如果为界面上出现的每一个Button控件都单独添加一个信号槽也是可以的,不过会显得代码有点冗余。添加到m_buttonGroup中之后,即可根据每个button对应的id属性,在槽函数中判断后执行不同的代码,一般使用switch…

2024-09-01 10:44:40 327

原创 53. QT插件开发--插件(动态库so)的调用与加载

在linux系统中加载动态库文件,需要使用dlopen函数和dlsym函数,其中dlopen用于打开指定路径下的so库文件,并返回一个句柄,dlsym根据返回的句柄查找so文件中暴漏在外部的接口函数,并进行调用。在使用QT进行插件库的开发之后,还需要将这个插件库程序生成的so动态链接库加载到主程序框架中进行使用,才能达到主程序的模块化开发的效果。中介绍了如何在QT中开发插件库,并提供外部接口调用。是so库暴漏出来的外部接口函数名称,两者一定要对应,否则会报错找不到指定的函数接口。是指定的库文件的路径。

2024-06-16 15:06:56 753

原创 52. QT插件开发--插件程序(带ui文件)的创建与编译

一般情况下,针对代码量比较小的QT程序不需要进行插件集成化开发,但是针对大型程序来说,代码结构比较复杂,使用插件开发的方式可以提高代码开发和维护效率,团队之间的分工合作也会更加的明确。创建完成后,一般会得到三个文件,其中两个头文件和一个源文件,头文件中会有一个命名为_global.h的文件,最终需要的也是这个文件,是用来将自己库中的接口向外暴漏出去,以使外部程序能够调用到这个接口。那么在得到so库文件之后,怎么才能让这个带有ui文件的库程序能够在其它主框架中进行调用并显示出来呢?

2024-06-16 14:28:09 456

原创 50. QT/QML中创建多线程的方式汇总

第一种:在定义类时继承 QThread 这个类,然后重写父类的虚函数 run(),将子线程需要执行的业务代码放到 run() 函数当中即可。第二种:使用moveToThread()函数将需要在子线程中执行的函数类移动到子线程中,这也是官方推荐的方式,比较灵活。首先,在QtCreator中新建一个QtQuick项目,需要实现的大致功能就是,在QML界面上点击按钮之后,会触发CPP后端的一个for循环函数(模拟耗时操作),同时将循环的次数显示在QML界面上。首先,在main.qml文件中。

2024-04-12 17:17:51 478

原创 49. QT中的HTTP通信与JSON数据格式解析

在请求获取网页数据时需要用到QNetworkAccessManager的get()方法,该方法需要传递一个QUrl参数,当数据访问结束之后,会触发QNetworkAccessManager::finished信号,此时可以在对应绑定的槽函数中去处理获取到的网页数据,finished信号当中会默认传递过来一个QNetworkReply类型的参数,访问到的所有网页数据都保存在这个参数当中。拿到上面的数据之后就可以自行处理了,比如简单的更新到UI界面上等。其次:利用get()函数获取网页数据。

2024-04-03 14:42:08 432

原创 16. QML中的一些粒子特效

在使用unity开发游戏时,都会涉及到一些特效的开发。实际上在QML中也提供了一些可以做特效的控件,称之为粒子系统。本篇博客主要记录一些使用粒子做特效的方式。

2024-02-28 15:13:08 795

原创 15. QML中一些相关的图形效果汇总

本篇博客主要记录一些在QML中,对图片进行操作的一些控件。

2024-02-28 10:11:15 507

原创 14. QML使用Flipable实现卡片翻转效果

分别用于展现正面和反面的界面状态,在实际中可以对这两个属性进行单独样式的设计,这样就可以实现在一个控件上的正反面设计不同的效果,同时结合动画更改控件的翻转角度,即可交替展现控件的正反面。,这个控件提供了两个属性,一个是。在QML中提供了一个控件。flipable控件效果。

2024-02-27 15:00:21 782

原创 10. Linux系统中wifi适配器找不到的解决方案

在linux系统中开启一个热点,一般有两种方式。一种使用create_ap在命令行中进行创建,另一种就是在系统自带的操作界面中手动开启。当手动开启热点时,有时会遇到wifi适配器找不到的问题,本博客记录一种可解决此问题的参考方案之一。服务重启后,关机,重启整个linux系统即可解决问题。

2024-02-24 10:09:46 2279 4

原创 17.自定义点击带波纹特效按钮

功能实现方式:在WaveButton.qml中使用动态创建组件的方式,创建WaveEffect.qml自定义控件,有关波纹的代码均在WaveEffect.qml中进行设计。此自定义按钮的大致效果为:当点击了按钮控件后,会在按钮中心生成一个类似波纹的特效并向四周扩散,同时按钮控件会有一个跳动的特效。

2024-02-06 13:21:56 486

原创 16. QML利用DropShadow自定义悬浮按钮

一般情况下,QML提供的按钮控件的外观效果比较单一,如果想要做出带有空间感的效果,需要自己定义组件实现。本篇博客记录两种效果的空间感按钮,主要借助阴影达到想要的效果。

2024-02-05 16:32:58 648

原创 12. openCV在QT环境中利用zBar开发库实现二维码内容识别

本篇博客仅记录如何使用zBar库进行二维码内容的识别,其中牵扯到的一些其它知识点,比如二维码区域检测、zBar库开发环境配置等可以参考本专栏的其它相关博客,此篇博客不再赘述。博客中代码功能:手动选择一张包含二维码的图片,会将检测到的二维码区域单独显示出来,并将二维码中包含的信息显示到一个button上。图像当作参数传入,进行信息提取,注意:使用。经过上述操作即可识别出二维码中的信息!是最终需要用来识别的二维码图像。检测时,待检测的图像必须转换为。

2024-01-23 18:00:15 597

原创 48.Qt for Android实用小技巧

但是,为Android项目配置了这个文件之后,一些关于Android的相关设置才能进行,因为这个文件相当于开发的Android程序的配置文件。开发的Android程序一般情况下是需要获得设备的某种权限的,不然很可能操作上会遇到问题,比如读写设备上的文件权限,蓝牙状态获取权限,wifi状态获取权限等。使用Qt开发的Android程序,当把编译的apk文件安装到设备上之后,默认显示的程序名称是在qt中创建项目时的项目名称,如果想让程序安装后有自己的名称,这时就需要单独设置了。的文件夹,这个文件夹是创建。

2024-01-11 17:27:12 276

原创 11. 在Opencv中利用仿射变换处理二维码变形问题

在前一篇博客中记录了如何在一张图片中单独提取出二维码区域,考虑一种情况:如果二维码图片拍摄时并非是正对着二维码拍摄的,那么整张图片相对来说就发生了一定的倾斜角度,最终截取到的二维码也是有一定的变形的。针对形状发生变化的二维码,如果想把它调整归正,可以使用仿射变换对图像就行矫正,某种程度上可以提高二维码最终的识别精度。

2024-01-09 11:04:30 1152

原创 9. linux系统下在Qt中配置Zbar条形码/二维码扫描开发环境

虽然现阶段OpenCV的高版本也有提供二维码扫描的功能,但是其在速度和精准度方面都远低于Zbar,不过Zbar的精准识别是依赖于一张图片中二维码的区域要占用40%-100%的空间,这样标准的二维码对于Zbar的识别是非常精准的。而实际应用中,拍摄一张带有二维码的图像进行识别,往往这张图像会包含一些其他的额外信息,所以就需要对原始含有二维码的图像进行处理,只保留其中的二维码区域,而图像处理方面OpenCV是强项,所以可以将两者结合开发,功能实现精准扫描的功能需求。,本篇博客以此种方式进行配置。

2024-01-08 18:00:13 652

原创 10. Opencv检测并截取图中二维码

在二维码扫描功能开发中,使用相机扫描图片时,往往图片中的信息比较多样,可能会造成二维码检测失败的问题。:根据二维码的特征 --> 三个角点都有一个 “回” 字形图案,可以借助这三个 ‘‘回’’ 字形图案定位到二维码的具体位置,然后使用OpenCV中的 “抠图” 功能,根据坐标值把二维图从原图中抠出来。字形的大致位置,接下来就是要使用上面的处理结果图再次进行预处理,查找轮廓等方式,寻找包围这三个。本博客中先是检测得到所有的轮廓,然后在找到所有的父轮廓,根据父轮廓的索引号将。字形轮廓绘制出来,得到。

2023-12-28 15:21:17 1222 1

原创 8.linux系统使用Qt开发Android配置opencv for android开发环境

在linux系统中使用qt开发android程序时,如果需要使用到opencv,是需要配置开发环境的。前面一篇文章记录了在linux中使用cmake工具配置opencv的方式,这种方式并不适合开发andrroid,在opencv的官网上有专门用于开发android的opencv包,下载之后按照本篇博客记录的方式即可实现环境配置。目前opencv的最新版本已经在4.X以上了,但是高版本的opencv在结合QT使用时会存在一些编译报错的问题,低版本的会更稳定一些。

2023-12-21 11:39:19 712

原创 3.基于对象的编程风格

基于对象:子类中包含一个父类的成员变量,同时子类中编写实际函数,并在子类构造函数内将实际函数以回调函数的形式注册到父类成员变量中。此博客记录如何以基于对象的方式进行编程,分别以旧的和最新的C++版本进行实现。面向对象:子类继承父类,实现父类提供的虚函数。

2023-12-08 14:38:31 134

原创 2.面向对象编程风格

此博客记录如何以面向对象的方式进行编程,以及如何让线程和线程对象同时销毁。

2023-12-07 13:14:30 469

原创 1. 使用poll或epoll创建echo服务器

【代码】1. 使用poll或epoll创建echo服务器。

2023-12-05 16:52:34 468

原创 47. QT Android针对Java代码常见接口类型的调用方式总结

可以很方便的对java代码进行调用,但是QT提供的这个类使用起来也并不是很简单,需要根据不同的java接口形式传入不同的参数,比如说在java中定义了一个无参无返回值的接口和一个无参有返回值的接口,又或者定义的还有带参带返回值的接口,不同的接口有不同的调用方式,本篇博客对常用的接口类型的调用方式进行了简单的归类,方便学习参考!先总结这些,后面有需要再追加…在QT中提供了一个接口。

2023-11-28 17:18:31 241

原创 46. Qt Android调用Java代码进行辅助开发 -- 框架搭建

在Qt中提供了调用Java代码的接口,比较方便。然后创建一个CPP文件用于辅助QML端调用java代码,本例创建的.cpp文件命名为javahandler.cpp,在QT中提供了一个接口。,注意从这个文件夹开始,文件夹的名称就是后面java代码的包名了,这个包名是要添加到java代码中的,比如java代码所在路径为。此时已经创建了一个java文件,还需要将这个文件的设定为启动时自动加载的默认文件,回到之前的android配置文件中,点击下图中。文件夹,多出了其它的一些文件,这些多余的文件是因为创建。

2023-11-22 14:23:37 247

原创 44. Adb调试QT开发的Android程序实用小技巧汇总

一般在QT程序中如果出现了BUG,都会尝试看一下某个变量值的状态,使用 console.log() 输出一些信息方便自己快速定位出错的原因。不像在linux或者windows系统中,可以利用QtCreator软件本身进行一些调试,安卓应用一旦在系统中安装后,如果运行中途出现什么BUG,定位问题所在很麻烦。关于android调试,在没有终端的情况下,也可以使用弹框的方式进行调试,就是自定义一个弹框显示的qml控件,把需要输出的调试信息显示到这个控件上,以弹框的形式显示出来。

2023-11-15 11:13:27 476 1

实现文件传输的辅助类ftp代码

实现文件传输的辅助类ftp代码

2023-07-03

unity2D游戏开发小案例

unity2D游戏开发小案例

2023-05-12

空空如也

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

TA关注的人

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