- 博客(114)
- 收藏
- 关注
原创 嘉立创免费pcb下单流程
选择确认提交,提交后支付完成即可查看到订单。点击领取后,可以在优惠券中看到已领取的券。右侧选择使用优惠券,选择之前领取的券使用。点击右侧【检查订单】填完必填项即可。4.在工程中导出Gerber文件。5.进入嘉立创下单助手客户端下单。上传上一步到处的Gerber文件。
2025-12-20 18:35:17
335
原创 如何使用立创EDA中的开源项目
这里不能选择.epro2,不然后续在EDA专业版软件中导入时找不到该文件,选.epro。11.打开即可看到工程,后续使用时只需要拷贝到自己工程中即可。3.例如打开立创画的stm32f103c8t6最小系统板。2.点击后会跳到网页中,可以看到与搜索匹配的开源项目。6.下载后导入到EDA专业版中(自己下载的软件)1.在EDA(专业版)软件中点击放大镜搜索。7.目前只支持打开.epro格式的。10.选择新窗口打开。
2025-12-18 21:43:06
483
原创 【C++】智能指针介绍
quad智能指针是行为类似于指针的类对象有名称,可以取地址持久存在,生命周期超出当前表达式通常出现在赋值号左边int a = 10;// a是左值// 可以取地址// s是左值// s在赋值左边。
2025-11-09 22:02:01
1105
原创 【C++】C++中的异常处理try-catch
const char *what() const throw(int) //throw(int)表明该函数会抛出整型异常。const char *what() const throw(…) //throw(…)表明该函数会抛出任意类型的异常。//throw(int,double)表明该函数会抛出整型或者double类型异常。//函数不会抛出任何异常,C++11新增。//throw()表明该函数不会抛出异常,新的写法用noexcept来代替。throw 异常类的对象。第二种:抛类类型的异常。
2025-10-12 17:13:10
629
原创 【QT】QPainter的使用
quadQPaintEvent是Qt框架中一个重要的事件类,专门用于处理绘图事件。1.窗口第一次显示时:当窗口或控件第一次出现在屏幕上时,系统会生成一个 0Paintevent 事件,通如窗口进行自身的绘制,2.窗口大小改变时:当用户改变窗口的大小时,窗口的内容通常需要重新绘制以适应新的尺寸,3.窗口部分被遮挡后又垂新显示时:如果窗口被其他窗口远挡,然后又重新露出来,被遮挡的部分通常需要重新绘制。4.手动请求重绘。
2025-09-24 22:36:11
1133
原创 【Linux】Linux中dos2unix 工具转换文件格式
Linux系统无法正确识别这些Windows格式的行尾符号,就可能引发各种问题,比如遇到的“not found”错误(因为Linux会把 ^M(即 \r )也当作脚本名的一部分去查找)dos2unix 就是一个用来将文本文件从DOS/Windows格式(CRLF)转换为Unix/Linux格式(LF)的小工具,可以解决这类问题。从Windows传输到Linux的脚本文件行尾格式(Line Ending)不兼容导致无法执行脚本的问题。在转换前,可以用 file 或 cat -A 命令检查文件当前的格式。
2025-09-17 23:01:46
601
原创 【QT】Qt QSS 中 background-image、image 和 border-image 的区别
需要背景纹理或渐变效果 :使用 background-image需要显示图标或内容图片 :使用 image需要创建可伸缩的UI元素 :使用 border-image。
2025-08-31 13:27:31
846
原创 【C++】STL标准模板库与函数符(函数对象)
匿名函数(Lambda表达式):没有函数名字C++规则:bool compare(int n) //一元谓词函数改写成Lambda表达式返回值 [](形参) { 函数源码 }返回值bool类型,省略Lambda的好处作用:普通函数必须要有声明和定义,无论程序员是否调用该函数,该函数都是要占用系统资源的(Lambda表达式是需要的时候直接写在调用的位置,不需要就不存在)#include <list> //list的头文件/*C++中的函数符(函数对象)包括如下几种情况。
2025-08-31 12:48:01
597
原创 【Linux驱动】Linux启动过程分析
uboot其实就是一个通用的引导程序——bootloader。boot,完成硬件的初始化,启动硬件平台loader,初始化硬件后,加载操作系统。支持各种硬件,例如支持ARM、MIPS、X86、AVR32、RISC-V架构…支持各种操作系统,例如支持WinCE、Linux内核、安卓操作系统…\quadlinux内核挂载的第一个文件系统,该根文件系统是挂载到根目录下的文件系统。
2025-08-23 09:57:20
738
原创 【Linux驱动】介绍什么是Linux驱动
quad驱动是 Linux 系统中设备和用户之间的桥梁,Linux 系统中,访问设备必须通过设备驱动进行操作,用户程序是不能直接操作设备的。Linux 系统中硬件、驱动和用户程序的关系如下图。\quad驱动程序运行与内核空间,用户程序只能通过内核提供的系统调用,由经 VFS 以及驱动程序才能访问和操作硬件,硬件设备传递的数据也必须经过驱动、VFS 和系统调用才能被用户程序接收。所以说,设备驱动是应用程序访问系统设备以及进行数据传递的桥梁和通道。
2025-08-20 23:25:48
685
原创 【QT】QT实现鼠标左右滑动切换图片
1、图片显示:6张图片通过QStackedWidget管理,每张填充整个窗口。4、循环切换:最后一张向右滑动回到第一张,第一张向左滑动到最后一张。1、在资源文件(qrc)中添加6张800x480像素的图片。2、使用QStackedWidget管理多个图片页面。3、动画效果:平滑的滑动动画,提升用户体验。2、水平拖动鼠标超过100像素距离。4、添加滑动动画效果增强用户体验。1、在窗口任意位置按住鼠标左键。3、释放鼠标完成图片切换。
2025-08-13 23:43:28
659
原创 【C++】C++中的运算符重载
*受到cout输出的原理启发,直接打印(输出)结构体,自定义的类对象(猫)*/class Catpublic:name=_name;age=_age;//缺陷:无法连续打印//可以连续打印private:int age;//void operator<<(ostream &out,Cat &other) //缺陷:无法连续打印ostream &operator<<(ostream &out,Cat &other) //可以连续打印。
2025-07-20 12:55:39
906
原创 【C++】C++中的模板函数和模板类
template<typename 模板的名字>或者template<class 模板的名字>模板 函数名(模板)模板的名字也叫做泛型名/*模板类的定义定义类:要求这个类可以给任意类型的指针申请堆空间*/class Test //模板类public:Test()cout<<"构造函数调用,申请堆空间"<<endl;//p=new 类型[10]~Test()cout<<"析构函数调用,释放堆空间"<<endl;delete []p;
2025-07-07 21:59:25
595
原创 【C++】C++中的友元函数和友元类
解决: C++提供了一种机制,A类的内部可以直接使用B类的私有成员(还是要用B类的对象调用私有成员) —》友元类。普通函数的内部可以直接使用某个类的私有成员 —》友元函数。问题:无论使用何种继承,子类都是无法使用父类的私有成员。
2025-06-29 22:44:45
502
原创 【C++】C++的虚析构函数
quad在C++中,当直接通过派生类指针删除对象时,派生类析构函数能够自动调用基类析构函数的原理,主要基于C++语言标准规定的对象销毁顺序和编译器生成的隐式代码机制。
2025-06-29 22:29:39
1145
原创 【C++】C++中的虚函数和多态的定义与使用
*一个类只要定义了虚函数,该类所有的对象中会新增一个指针,该指针用来指向虚函数表(虚表)的首地址*/public:cout<<"动物吃"<<endl;public:void eat()cout<<"猫吃鱼"<<endl;public:void eat()cout<<"狗吃骨头"<<endl;public:void eat()cout<<"羊吃草"<<endl;return 0;/*执行结果:*/在不同的类中(分别位于子类和父类)
2025-06-23 21:57:10
1240
原创 【C++】C++枚举、const、static的用法
写法一:使用枚举 enum 枚举类型的名字{black,white};//枚举不占用类的大小class Catprotected:enum 枚举类型的名字{red,black,white};
2025-06-22 21:25:23
568
原创 【QT】QT项目修改QT设计师界面类类名和文件名的方法
3)输入与类名一致的新文件名(如 NewName.h / NewName.cpp),弹出对应的.h或.cpp文件是否同步更新,选择确定。2) 选择 Refactor > Rename Symbol Under Cursor(快捷键 Ctrl+Shift+R)。1)在源代码中右键点击要修改的类名(如 class OldName)。1)在 项目文件树 中右键点击要修改的文件(.h 或 .cpp)。3) 输入新的类名(如 NewName),点击 Replace。2)选择 Rename File。
2025-06-17 23:19:52
717
原创 【C++】多重继承与虚继承
虚继承可以解决二义性和A被构建多次这两个问题,普通继承不能解决;虚继承通过增加一个指针(浪费了一点存储空间),换取了更高的效率只要一个类虚继承了其它类,那么该类所有的对象中都会新增一个指针,该指针专门用来指向系统中虚基类表的首地址。
2025-06-12 22:46:08
1191
原创 【C++】继承和派生
那么基类的保护成员就是在派生类中也是充当保护成员,可以在派生类的内部使用,但是不能外部使用。那么基类的公有成员就是在派生类中是充当保护成员,可以在派生类的内部使用,但是不能外部使用。那么基类的保护成员就是在派生类中是充当保护成员,可以在派生类的内部使用,但是不能外部使用。那么基类的公有成员就是在派生类中是充当私有成员,可以在派生类的内部使用,但是不能外部使用。那么基类的保护成员就是在派生类中是充当私有成员,可以在派生类的内部使用,但是不能外部使用。上面表格权限是基类中的成员继承到子类后的成员权限。
2025-06-12 22:38:08
1054
原创 【C++】lambda表达式
请注意,上述代码仅仅是为了讲解Lambda函数的形参列表的语法逻辑,而并不是Lambda函数的一般典型用法,因为上述例子已经违背了匿名函数的初衷—将Lambda函数赋值给了一个具名函数对象sum,这么做毫无意义,如果非要定义一个具名函数的话,那么完全可以直接编写一个普通的函数 sum 来达到此功能。那么,Lambda函数形参列表的典型场景是怎样的呢?Lambda匿名函数被设计为一种对象,这意味着可以将它们作为函数的参数、返回值,有时,那些使用了Lambda函数作为参数、返回值的函数,被称为高阶函数。
2025-06-12 21:09:59
3042
原创 【QT】QT多语言切换
ts(Translation Sourcefile)是XML格式的翻译源文件如下图:有如下信息输出说明生成成功:若不添加会报如下警告:.qm 文件是 Qt message Qt 信息文件示例代码:可直接放入工程测试// mainwindow 登录界面// info_win 信息界面// .ui 文件// mainwindow.ui// info_win.ui代码框架:在代码中设置的文本需要 tr()函数,标记为可翻译的修改完后可在Qt-creator做发布(lrelease)
2025-06-08 11:49:25
2133
原创 【C++】类的构造函数
*构造函数用途:用来初始化对象里的数据如果程序员自定义构造函数(无论是否带参数),那么系统就不会再自动生成默认的构造函数*/public:// 通过Animal的构造函数对Animal的属性设置age = _age;cout<<"动物的带参数构造函数被调用了"<<endl;//正确,创建Animal的对象// 错误的,程序员写了带参数的构造函数,因此系统不会再生成无参构造函数,若要排除该错误,需自定义一个无参构造。
2025-06-02 11:05:52
1141
原创 git clone时出现无法访问的问题
2、如果需要代理,确保代理工具(如 Clash)已启动且监听 7890 端口。由于我的git之前设置了代理,然后在这次克隆时又没有打开代理。如果返回 443 连接失败,可能是网络被防火墙拦截。4、尝试直连(关闭代理工具)3、检查系统环境变量。
2025-05-22 00:16:26
1028
原创 【C++】C++的拷贝构造函数介绍使用
构造出来的新对象跟原有的对象共用同一块堆空间,一旦某个对象修改了堆空间中的数据,其它对象全部跟着修改,这种现象称之为浅拷贝。程序员自己动手写个拷贝构造函数,解决浅拷贝的bug,这个自定义的拷贝构造函数实现就是深拷贝。用一个对象去初始化赋值给另外一个新的对象的时候就会自动调用拷贝构造函数。常规的赋值不会调用拷贝构造函数。类名(const 类名 &)
2025-05-20 23:05:38
599
原创 【C++】C++ 类的内存空间大小
如果定义对空的类或者结构体取sizeof()的值为0,那么该空的类或结构体实例化出很多实例时,在内存地址上就不能区分该类实例化出的实例。所以,为了实现每个实例在内存中都有一个独一无二的地址,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。通俗一点讲 就是 用空类实例化一个对象,这个对象的实体要存在内存中,既然要存在内存中那么就需要有个地址能访问他,为了避免多个实例对象的地址 问题,所以才有了者一个字节的空间。
2025-05-09 22:52:53
358
原创 【C++】C++中的命名/名字/名称空间 namespace
探讨:在实际的系统开发中,所有的开发工作,通常都不会仅由一个人来开发完成,不同的人只负责自己功能模块,他们在设计时,比如声明变量,通常情况下,不会考虑其他人是否已使用该变量名,在模块功能测试时,相互之间是独立的,完全没有问题,当系统功能合成 时,不可避免地会出现变量或函数的命名冲突,因为变量或函数重名而导致的问题将会造成一定的混乱。全局作用域是从C语言就开始有的一种作用域,在C++中,有时为了强调某符号的全局特性,或为了避免与导入的名字空间中的重名符号冲突,会在使用全局符号的时候加上。
2025-05-06 23:17:02
928
原创 【QT】QT中的软键盘设计
参数: type --》事件类型 QEvent::KeyPresskey --》按键的键值摸索规律:字母按键(无论大小写)键值 A/a 65B/b 66modifiers --》你是否使用了某个组合键Qt::NoModifier //没有使用组合键Qt::ShiftModifier //使用了shift按键text --》点击的按键的字面值//把指定的事件发送出去参数:receiver --》事件的接收者event --》要发送的某种事件。
2025-05-05 21:55:04
1597
原创 【QT】QT中http协议和json数据的解析-http获取天气预报
地址: http://t.weather.itboy.net/api/weather/city/xxxxx ,其中xxxxx即为城市代码(数组:用[]来表示,数组里面只能存放相同类型的数据 [1,2,3] [{},{},{}] [键值对,键值对,键值对]json数据:一种数据格式,在计算机前端开发中经常使用这个格式的数据,保存信息很方便。键值对:用键:值表示, 键只能是字符串,值可以是任意合法类型。json数据只能由数组,对象,键值对三种构成。对象:用{}来表示,可以嵌套 {键值对}
2025-05-04 23:53:42
1366
原创 【QT】QT中的网络编程(TCP 和 UDP通信)
服务器: socket --》bind --》listen --》accept --》read/write --》close。客户端: socket --》bind --》connect --》read/write --》close。QT中: QHostAddress::Any --》获取本地主机上的任意一个ip。linux中: INADDR_ANY --》获取本地主机上的任意一个ip。QTcpServer --》表示服务器。QTcpSocket --》表示套接字。现象同1.2.1.2。
2025-05-04 23:20:41
1734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1