- 博客(82)
- 收藏
- 关注
原创 【C++】C++中的命名/名字/名称空间 namespace
探讨:在实际的系统开发中,所有的开发工作,通常都不会仅由一个人来开发完成,不同的人只负责自己功能模块,他们在设计时,比如声明变量,通常情况下,不会考虑其他人是否已使用该变量名,在模块功能测试时,相互之间是独立的,完全没有问题,当系统功能合成 时,不可避免地会出现变量或函数的命名冲突,因为变量或函数重名而导致的问题将会造成一定的混乱。全局作用域是从C语言就开始有的一种作用域,在C++中,有时为了强调某符号的全局特性,或为了避免与导入的名字空间中的重名符号冲突,会在使用全局符号的时候加上。
2025-05-06 23:17:02
672
原创 【QT】QT中的软键盘设计
参数: type --》事件类型 QEvent::KeyPresskey --》按键的键值摸索规律:字母按键(无论大小写)键值 A/a 65B/b 66modifiers --》你是否使用了某个组合键Qt::NoModifier //没有使用组合键Qt::ShiftModifier //使用了shift按键text --》点击的按键的字面值//把指定的事件发送出去参数:receiver --》事件的接收者event --》要发送的某种事件。
2025-05-05 21:55:04
935
原创 【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
962
原创 【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
1292
原创 【QT】QT多线程
第一步:自定义一个类继承QThread,然后重写父类的同名方法run()(此时程序员在run方法里面实现自己的代码逻辑)[virtual protected] void QThread::run() //源码也是空的。类比:linux中多线程 pthread_create( 线程的任务函数)第二步:创建一个子类对象,调用start()方法就能自动开启一个线程。原理: start()方法开启线程,然后自动执行run函数。同理:QT中创建线程,任务函数也是需要程序员自己去写。
2025-04-27 20:58:36
496
原创 linux中shell脚本的编程使用
quadshell编程就是通过shell语法将shell命令组合起来,写入一个文件中。将来运行这个文件时,就会执行里面的每一行shell语法,这个文件称之为shell脚本文件。实现更加自动化和智能化。str=hello1)expression 既可以是一个变量、一个数字、一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要能够得到 expression 的值就可以。2)pattern 可以是一个数字、一个字符串,甚至是一个简单的正则表达式。
2025-04-26 13:00:30
747
原创 【QT】信号与槽中多个按钮(pushbutton)共用一个槽函数的两种实现方式
适用场景:现代Qt项目,推荐首选(QT5以上才支持)缺点:依赖运行时类型转换,安全性较低。优点:代码简洁,无需额外参数。适用场景:简单场景,少量按钮。优点:安全直观,直接传递标识。缺点:需要为每个按钮单独连接。
2025-04-23 18:58:41
373
原创 【QT】 QT中的列表框-横向列表框-树状列表框-表格列表框
选择【加载目录】–>确定后将所选择的目录显示在横向列表框种。QListWidget 表示横向列表框。QModelIndex 表示列表项索引。QListWidgetItem 表示列表项。跟横向列表框类似,请参见横向列表框信号的介绍。
2025-04-21 00:02:11
589
原创 【QT】 QT定时器的使用
QTimer是Qt中提供的一个定时器类,它可以定时触发一个信号,用于周期性执行一些操作。使用QTimer,可以轻松地实现定时器功能,如周期性地更新UI界面,周期性地执行一些任务等。
2025-04-15 22:34:25
463
原创 【C++】C++中函数带默认参数和占位参数
占位参数:跟默认参数不同,在函数定义时,形参只写类型,不写形参变量名。优点:程序员在调用这个函数的时候,实参可以灵活选择。概念:定义函数的时候,可以给函数的形参设置默认值。
2025-04-13 16:31:43
328
原创 【C++】C++的引用
/使用命名空间std//公式:类型名 &引用的名字 = 变量名;//第一种:指向普通变量的引用// 定义引用cout<<"a的地址:"<<&a<<endl;cout<<"b的地址:"<<&b<<endl;//第二种:指向指针的引用int c = 45;// 定义引用cout<<"p的地址:"<<p<<endl;cout<<"x的地址:"<<x<<endl;// 定义引用cout<<"q的地址:"<<(int *)q<<endl;
2025-04-13 15:32:46
289
原创 【QT】QT的消息盒子和对话框(自定义对话框)
QT添加新的ui界面总共提供三种模板,三者区别dialog --》作为独立的弹窗来使用mainwindow --》多界面跳转,界面直接切换widget --》作为子窗口来使用,嵌套到mainwindow右键点击工程名–》QT设计师界面类,选择QDialog模板。
2025-04-09 21:44:08
968
原创 【QT】QT的多界面跳转以及界面之间传递参数
/ A界面// 第一个界面:Q_OBJECTpublic:private:delete ui;// 登录按钮的槽函数// 获取输入的用户名和密码//创建第二个界面对象,必须传递this指针(把第一个界面的地址传给第二个界面)// 将第一个界面的账号和密码传递给第二个界面qDebug()<<"第一界面的地址是"<<this;// 显示第二个界面//隐藏第一个界面/*隐藏:把界面转入到系统后台运行,这个界面对象依然存在关闭:界面释放掉,对象不存在了*/
2025-04-01 22:23:01
483
原创 【QT】QT中的信号与槽
Q_OBJECT:QT把它称为元对象系统,作用支持信号与槽这种机制//自定义信号语法格式signals:// 自定义信号;void mysignal(参数);//参数的类型个数依据需要自行添加//发送信号//注意注意注意:自定义的信号必须程序员主动调用emit发送,不能自动触发的emit mysignal(实参);
2025-04-01 21:47:25
813
原创 【QT】练习1
2、用户输入用户名或者密码出错三次,锁死输入框,在密码输入框的旁边加一个按钮,点击第一次的时候密码显示,点击第二次密码隐藏。修改背景颜色:setStyleSheet(“background-color 红绿蓝颜色值”);1、设计一个颜色选择器,可以输入RGB的颜色值,点击确认,可以把主界面的背景颜色改成设置的颜色。
2025-03-31 22:02:09
295
原创 【QT】QT样式设计
右键改变样式表–》打开QT的样式编辑器(有局限性,只能让你设置四种样式)–》添加资源,添加渐变色,添加颜色,添加字体。如果你要设置其它样式,需要程序员自己写代码(把所知道的qss语句写在样式表的下面)指的是让界面设计得更加好看(比如:文字颜色,背景图片,改变倒角,文字对齐…QT中的样式设计,就跟计算机前端(css)中设计网页的样式类似。指的是QT程序中需要用到的素材(比如:图片,音频,视频)
2025-03-29 23:37:52
1126
原创 【QT】新建QT工程(详细步骤)
QT += core gui //添加要使用的QT库 core(核心库) gui(图形用户交互库)greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //添加widgets窗口库TARGET = firstqt //生成的可执行程序的名字TEMPLATE = app //生成QT应用程序mainwindow.cpp //QT工程编译需要用到的源码HEADERS += mainwindow.h //QT工程编译需要的头文件。
2025-03-28 21:37:01
458
原创 【QT】QT中的中文显示乱码解决
2.选择UTF-8—>按编码重新载入。4.同样选择UTF-8—>确定即可。1.编辑栏左键——>选择编码。3.工具栏左键—>选择选项。
2025-03-26 21:51:38
331
原创 【C++】C++中的动态内存分配(new和delete)
第二个: delete只要new分配堆空间的时候使用了[],那么delete对应写上[]malloc calloc realloc free 函数。第一个: new int(999)和new int[999]的区别。第二种:分配一个int大小的堆空间,并赋值。第一种:分配一个int大小的堆空间。第三种:分配多个int大小的堆空间。delete关键字释放堆空间。new关键字分配堆空间。
2025-03-25 20:49:28
428
原创 【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现
【代码】【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现。
2025-03-23 14:57:05
172
原创 【Linux文件IO】Linux中文件属性与目录操作的API介绍和用法
在应用开发中,经常要获取文件的属性,例如:文件的类型、大小、权限、设备号、最近修改时间等等,比如网络传输文件时,一般都需要先传递文件的属性,等准备妥善了再开始传输文件的真实内容。因此,熟悉文件属性的细节,并熟练获取这些信息的方式至关重要。
2025-03-23 14:54:18
1010
原创 Linux中查找标准库函数的定义
1、先使用man -f +需要查找的函数名如:man -f read此时Linux会输出:man 3 read可查看到具体函数的定义及描述:man man。
2025-03-23 13:21:33
245
原创 【Linux文件IO】系统IO中API描述和基本使用
quad对文件的操作,除了最基本的打开、关闭、读、写、定位之外,还有很多特殊的情况,比如用于沟通应用层与底层驱动之间的ioctl、万能工具箱fcntl、内存映射mmap等等,熟练使用这些API,是日常开发的必备技能。
2025-03-16 23:50:05
1034
原创 vscode搭建git
5、此时若选择Publish branch ,会默认在远程仓库新建一个与本地仓库同名的仓库((1)步已有步骤),由于我们在githup上已经创建好了远程仓库,所以我们要提交到指定的github远程仓库上,本步骤忽略,直接进行下一步操作。设置代理完成后,再次选择【Publish Branch】,此时本地文件推送到了githup上,分支上显示有云端图标,如下,说明上传到github远程仓库成功。9、选择添加远程仓库后会列出自己github账户上的所有创建的远程仓库名,选择需要放入的仓库即可。
2025-02-04 00:48:56
4252
1
原创 【数据结构】顺序队列与链式队列
只要满足上述条件,那么这种特殊的线性表就会呈现一种“队列是一种逻辑结构,是一种特殊的线性表。”的逻辑,这种逻辑就被称为队列。
2025-01-21 23:01:03
606
原创 【数据结构】C语言顺序栈和链式栈入栈和出栈操作
栈只是一种数据逻辑,如何将数据存储于内存则是另一回事。一般而言,可以采用顺序存储形成顺序栈,或采用链式存储形成链式栈。只要满足上述条件,那么这种特殊的线性表就会呈现一种“栈是一种逻辑结构,是特殊的线性表。”的逻辑,这种逻辑就被称为栈。
2025-01-14 22:01:43
425
原创 【数据结构】单向循环链表的增删改查操作
循环链表的操作跟普通链表操作基本上是一致的,只要针对循环特性稍作修改即可,遍历查找节点时,需将遍历的指针指向头节点。单向循环链表指得是将链表末尾节点循环地指向链表表头。
2024-12-28 23:46:26
561
原创 【数据结构】单链表的增删改查操作
链式存储中,所有节点的存储位置是随机的,他们之间的逻辑关系用指针来确定,跟物理存储位置无关,因此从上述示例代码可以很清楚看到,增删数据都非常迅速,不需要移动任何数据。首先,空链表有两种常见的形式。另外注意到,整条链表用一个所谓的头指针 head 来指向,由 head 开始可以找到链表中的任意一个节点。由于头结点是不存放有效数据的,因此如果空链表中带有头结点,那么头指针 head 将永远不变,这会给以后的链表操作带来些许便捷。上图中,所有的节点均保存一个指针,指向其逻辑上相邻的下一个节点(末尾节点指向空)。
2024-12-28 23:35:00
864
原创 【数据结构】顺序表的增删改查操作
quad顺序存储中,由于逻辑关系是用物理位置来表达的,因此从上述示例代码可以很清楚看到,增删数据都非常困难,需要成片地移动数据。顺序表对数据节点的增删操作是很不友好的。优点1.不需要多余的信息来记录数据间的关系,存储密度高2.所有数据顺序存储在一片连续的内存中,支持立即访问任意一个随机数据,比如上述顺序表中中第i个节点是 p->data[i]缺点1.插入、删除时需要保持数据的物理位置反映其逻辑关系,一般需要成片移动数据2.当数据节点数量较多时,需要一整片较大的连续内存空间。
2024-12-08 19:31:22
663
原创 【数据结构】时间复杂度与空间复杂度的介绍
虽然在很多情况下,程序的时空特性是相互制约的,就像鱼与熊掌不可兼得,但我们可以根据程序实际解决问题的侧重点,去平衡时间和空间的对性能的消耗。一段程序的性能指标,既要运行快速,又要节省内存,而通常这两者又是相互制约的,很难兼得。各个元素之间是一种一对一的关系,比如图书馆中的书架的书,除了首尾两本书之外,其余的任意一本书的编号假设是N,都有且仅有一个直接前驱节。与上述线性关系的表述不同,如果各个元素之间不是严格一对一的关系,则被称为非线性关系,比如家族中的各个成员、不同城市间的交通道路等,对。
2024-12-08 16:21:34
682
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人