- 博客(89)
- 收藏
- 关注
原创 【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
1054
原创 【C++】类的构造函数
*构造函数用途:用来初始化对象里的数据如果程序员自定义构造函数(无论是否带参数),那么系统就不会再自动生成默认的构造函数*/public:// 通过Animal的构造函数对Animal的属性设置age = _age;cout<<"动物的带参数构造函数被调用了"<<endl;//正确,创建Animal的对象// 错误的,程序员写了带参数的构造函数,因此系统不会再生成无参构造函数,若要排除该错误,需自定义一个无参构造。
2025-06-02 11:05:52
953
原创 git clone时出现无法访问的问题
2、如果需要代理,确保代理工具(如 Clash)已启动且监听 7890 端口。由于我的git之前设置了代理,然后在这次克隆时又没有打开代理。如果返回 443 连接失败,可能是网络被防火墙拦截。4、尝试直连(关闭代理工具)3、检查系统环境变量。
2025-05-22 00:16:26
224
原创 【C++】C++的拷贝构造函数介绍使用
构造出来的新对象跟原有的对象共用同一块堆空间,一旦某个对象修改了堆空间中的数据,其它对象全部跟着修改,这种现象称之为浅拷贝。程序员自己动手写个拷贝构造函数,解决浅拷贝的bug,这个自定义的拷贝构造函数实现就是深拷贝。用一个对象去初始化赋值给另外一个新的对象的时候就会自动调用拷贝构造函数。常规的赋值不会调用拷贝构造函数。类名(const 类名 &)
2025-05-20 23:05:38
435
原创 【C++】C++ 类的内存空间大小
如果定义对空的类或者结构体取sizeof()的值为0,那么该空的类或结构体实例化出很多实例时,在内存地址上就不能区分该类实例化出的实例。所以,为了实现每个实例在内存中都有一个独一无二的地址,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。通俗一点讲 就是 用空类实例化一个对象,这个对象的实体要存在内存中,既然要存在内存中那么就需要有个地址能访问他,为了避免多个实例对象的地址 问题,所以才有了者一个字节的空间。
2025-05-09 22:52:53
243
原创 【C++】C++中的命名/名字/名称空间 namespace
探讨:在实际的系统开发中,所有的开发工作,通常都不会仅由一个人来开发完成,不同的人只负责自己功能模块,他们在设计时,比如声明变量,通常情况下,不会考虑其他人是否已使用该变量名,在模块功能测试时,相互之间是独立的,完全没有问题,当系统功能合成 时,不可避免地会出现变量或函数的命名冲突,因为变量或函数重名而导致的问题将会造成一定的混乱。全局作用域是从C语言就开始有的一种作用域,在C++中,有时为了强调某符号的全局特性,或为了避免与导入的名字空间中的重名符号冲突,会在使用全局符号的时候加上。
2025-05-06 23:17:02
806
原创 【QT】QT中的软键盘设计
参数: type --》事件类型 QEvent::KeyPresskey --》按键的键值摸索规律:字母按键(无论大小写)键值 A/a 65B/b 66modifiers --》你是否使用了某个组合键Qt::NoModifier //没有使用组合键Qt::ShiftModifier //使用了shift按键text --》点击的按键的字面值//把指定的事件发送出去参数:receiver --》事件的接收者event --》要发送的某种事件。
2025-05-05 21:55:04
1165
原创 【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
1118
原创 【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
1449
原创 【QT】QT多线程
第一步:自定义一个类继承QThread,然后重写父类的同名方法run()(此时程序员在run方法里面实现自己的代码逻辑)[virtual protected] void QThread::run() //源码也是空的。类比:linux中多线程 pthread_create( 线程的任务函数)第二步:创建一个子类对象,调用start()方法就能自动开启一个线程。原理: start()方法开启线程,然后自动执行run函数。同理:QT中创建线程,任务函数也是需要程序员自己去写。
2025-04-27 20:58:36
527
原创 linux中shell脚本的编程使用
quadshell编程就是通过shell语法将shell命令组合起来,写入一个文件中。将来运行这个文件时,就会执行里面的每一行shell语法,这个文件称之为shell脚本文件。实现更加自动化和智能化。str=hello1)expression 既可以是一个变量、一个数字、一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要能够得到 expression 的值就可以。2)pattern 可以是一个数字、一个字符串,甚至是一个简单的正则表达式。
2025-04-26 13:00:30
766
原创 【QT】信号与槽中多个按钮(pushbutton)共用一个槽函数的两种实现方式
适用场景:现代Qt项目,推荐首选(QT5以上才支持)缺点:依赖运行时类型转换,安全性较低。优点:代码简洁,无需额外参数。适用场景:简单场景,少量按钮。优点:安全直观,直接传递标识。缺点:需要为每个按钮单独连接。
2025-04-23 18:58:41
441
原创 【QT】 QT中的列表框-横向列表框-树状列表框-表格列表框
选择【加载目录】–>确定后将所选择的目录显示在横向列表框种。QListWidget 表示横向列表框。QModelIndex 表示列表项索引。QListWidgetItem 表示列表项。跟横向列表框类似,请参见横向列表框信号的介绍。
2025-04-21 00:02:11
643
原创 【QT】 QT定时器的使用
QTimer是Qt中提供的一个定时器类,它可以定时触发一个信号,用于周期性执行一些操作。使用QTimer,可以轻松地实现定时器功能,如周期性地更新UI界面,周期性地执行一些任务等。
2025-04-15 22:34:25
660
原创 【C++】C++中函数带默认参数和占位参数
占位参数:跟默认参数不同,在函数定义时,形参只写类型,不写形参变量名。优点:程序员在调用这个函数的时候,实参可以灵活选择。概念:定义函数的时候,可以给函数的形参设置默认值。
2025-04-13 16:31:43
357
原创 【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
392
原创 【QT】QT的消息盒子和对话框(自定义对话框)
QT添加新的ui界面总共提供三种模板,三者区别dialog --》作为独立的弹窗来使用mainwindow --》多界面跳转,界面直接切换widget --》作为子窗口来使用,嵌套到mainwindow右键点击工程名–》QT设计师界面类,选择QDialog模板。
2025-04-09 21:44:08
1440
原创 【QT】QT的多界面跳转以及界面之间传递参数
/ A界面// 第一个界面:Q_OBJECTpublic:private:delete ui;// 登录按钮的槽函数// 获取输入的用户名和密码//创建第二个界面对象,必须传递this指针(把第一个界面的地址传给第二个界面)// 将第一个界面的账号和密码传递给第二个界面qDebug()<<"第一界面的地址是"<<this;// 显示第二个界面//隐藏第一个界面/*隐藏:把界面转入到系统后台运行,这个界面对象依然存在关闭:界面释放掉,对象不存在了*/
2025-04-01 22:23:01
636
原创 【QT】QT中的信号与槽
Q_OBJECT:QT把它称为元对象系统,作用支持信号与槽这种机制//自定义信号语法格式signals:// 自定义信号;void mysignal(参数);//参数的类型个数依据需要自行添加//发送信号//注意注意注意:自定义的信号必须程序员主动调用emit发送,不能自动触发的emit mysignal(实参);
2025-04-01 21:47:25
855
原创 【QT】练习1
2、用户输入用户名或者密码出错三次,锁死输入框,在密码输入框的旁边加一个按钮,点击第一次的时候密码显示,点击第二次密码隐藏。修改背景颜色:setStyleSheet(“background-color 红绿蓝颜色值”);1、设计一个颜色选择器,可以输入RGB的颜色值,点击确认,可以把主界面的背景颜色改成设置的颜色。
2025-03-31 22:02:09
304
原创 【QT】QT样式设计
右键改变样式表–》打开QT的样式编辑器(有局限性,只能让你设置四种样式)–》添加资源,添加渐变色,添加颜色,添加字体。如果你要设置其它样式,需要程序员自己写代码(把所知道的qss语句写在样式表的下面)指的是让界面设计得更加好看(比如:文字颜色,背景图片,改变倒角,文字对齐…QT中的样式设计,就跟计算机前端(css)中设计网页的样式类似。指的是QT程序中需要用到的素材(比如:图片,音频,视频)
2025-03-29 23:37:52
1157
原创 【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
575
原创 【QT】QT中的中文显示乱码解决
2.选择UTF-8—>按编码重新载入。4.同样选择UTF-8—>确定即可。1.编辑栏左键——>选择编码。3.工具栏左键—>选择选项。
2025-03-26 21:51:38
616
原创 【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
440
原创 【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现
【代码】【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现。
2025-03-23 14:57:05
188
原创 【Linux文件IO】Linux中文件属性与目录操作的API介绍和用法
在应用开发中,经常要获取文件的属性,例如:文件的类型、大小、权限、设备号、最近修改时间等等,比如网络传输文件时,一般都需要先传递文件的属性,等准备妥善了再开始传输文件的真实内容。因此,熟悉文件属性的细节,并熟练获取这些信息的方式至关重要。
2025-03-23 14:54:18
1021
原创 Linux中查找标准库函数的定义
1、先使用man -f +需要查找的函数名如:man -f read此时Linux会输出:man 3 read可查看到具体函数的定义及描述:man man。
2025-03-23 13:21:33
262
原创 【Linux文件IO】系统IO中API描述和基本使用
quad对文件的操作,除了最基本的打开、关闭、读、写、定位之外,还有很多特殊的情况,比如用于沟通应用层与底层驱动之间的ioctl、万能工具箱fcntl、内存映射mmap等等,熟练使用这些API,是日常开发的必备技能。
2025-03-16 23:50:05
1045
原创 vscode搭建git
5、此时若选择Publish branch ,会默认在远程仓库新建一个与本地仓库同名的仓库((1)步已有步骤),由于我们在githup上已经创建好了远程仓库,所以我们要提交到指定的github远程仓库上,本步骤忽略,直接进行下一步操作。设置代理完成后,再次选择【Publish Branch】,此时本地文件推送到了githup上,分支上显示有云端图标,如下,说明上传到github远程仓库成功。9、选择添加远程仓库后会列出自己github账户上的所有创建的远程仓库名,选择需要放入的仓库即可。
2025-02-04 00:48:56
5646
1
原创 【数据结构】顺序队列与链式队列
只要满足上述条件,那么这种特殊的线性表就会呈现一种“队列是一种逻辑结构,是一种特殊的线性表。”的逻辑,这种逻辑就被称为队列。
2025-01-21 23:01:03
612
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人