自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喜欢编程、唱歌、运动。C++,Java,Python,C#编程选手,偶尔刷刷leetcode

喜欢编程、唱歌、运动。C++,Java,Python,C#编程选手,偶尔刷刷leetcode

  • 博客(107)
  • 问答 (1)
  • 收藏
  • 关注

原创 【C++ QT】纯手搓制作一个QT网络调试助手,万字解析

本文介绍了一个基于Qt开发的TCP网络调试助手项目。项目通过QTcpServer和QTcpSocket类实现TCP通信,包含服务端和客户端功能模块。服务端核心功能包括端口监听、连接管理、数据收发处理和状态监控;客户端实现连接建立、数据发送接收等功能。文章详细讲解了TCP三次握手/四次挥手机制,分析了Qt网络编程关键流程,并提供了服务端和客户端的核心代码实现。该项目结合Qt信号槽机制,实现了网络通信的异步事件处理,同时包含GUI界面开发元素如文本颜色控制等功能,适合作为网络编程学习和实践的参考案例。

2025-07-15 21:03:13 712

原创 Ubuntu快速搭建QT开发环境指南,5000字解析!!

本文详细介绍了在Ubuntu 22.04上搭建QT开发环境的完整流程。主要内容包括:1)通过VMware安装Ubuntu系统,配置基础命令和网络环境;2)安装编译工具链和必要依赖库;3)配置SSH远程登录和文件共享功能;4)下载安装QT开发套件,并解决中文输入支持问题。文中提供了具体命令和配置方法,特别强调了中文输入法的安装配置步骤,以及如何将相关库文件拷贝到QT目录来实现中文输入支持。整个配置过程涵盖了从虚拟机安装到开发环境搭建的所有关键环节。

2025-07-12 10:51:20 491

原创 C++QT网络调试助手开发全攻略,万字解析

本文介绍了使用Qt框架开发TCP网络调试助手的过程。项目分为服务端和客户端两部分,使用QTcpServer和QTcpSocket类实现网络通信功能。主要内容包括:1. TCP基础概念和协议特性;2. 服务端开发流程,包括监听端口、处理新连接、数据收发等核心功能实现;3. 客户端开发流程,包括连接服务器、数据交互等功能实现;4. UI界面设计,重点介绍了TextEdit控件的数据显示和颜色控制。项目通过信号与槽机制实现了异步网络通信,完整展示了TCP网络应用的开发过程,可作为网络编程的实践参考。

2025-07-10 21:33:31 982

原创 全志H616开发学习文档

根据现有就业案例,大专本科生以应用开发入行为主,在工作一两年可能会根据公司安排走系统开发,也可能一直做应用,薪资待遇并不完全由技术方向决定,还是看个人发展和公司的关系,当然。等,一般为中高级嵌入式工程师,新手如果以这个方向入行,压力相对更大,一般原厂公司会招聘,岗位相对少。位就会带很多局限性,天花板有容易来的过早,在技术积累阶段对于这个知识的学习是必不可少的,但。守护进程,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除。件设备的状态动态更新设备文件,包括设备文件的创建,删除等。

2025-07-09 20:51:49 680

原创 Qt时间显示按钮功能详解

摘要:这是一个Qt应用程序,主要功能是在点击按钮时获取并显示当前系统时间。项目包含以下文件: widget.cpp - 实现核心功能: 通过QDateTime获取当前时间 将年月日时分秒以格式化字符串输出到文本框中 使用信号槽机制响应按钮点击 widget.h - 定义界面类: 继承QWidget 包含按钮点击事件声明 使用Ui命名空间管理界面控件 main.cpp - 程序入口: 创建QApplication 实例化并显示主窗口 启动事件循环 widget.ui - UI设计文件: 定义800x600窗口

2025-07-01 19:13:14 770

原创 C++、QT项目——串口调试助手软件开发,技术文档解析,项目开发已完毕

摘要:该项目是一个基于Qt框架开发的串口调试助手,专为嵌入式开发设计。主要功能包括自动检测串口设备、支持多种串口参数配置(波特率、数据位、校验位等)、数据发送接收(支持字符串和HEX格式)、定时发送、历史记录保存等功能。项目采用Qt5.12.12开发,包含串口操作、UI交互等核心模块,提供了友好的图形界面进行串口通信调试。开发过程中逐步完善了串口读取、发送状态更新、按键保护、自动发送、数据保存等特性,最终实现了一个功能完善的串口调试工具。

2025-06-25 16:39:27 262 1

原创 C++QT网络调试助手开发2万字全解析,涉及网络监听,发送、接收等功能

摘要:本文介绍了基于Qt框架的TCP网络调试助手开发流程,重点讲解了QTcpServer和QTcpSocket的使用方法。内容包括:1)TCP服务端开发的关键步骤(监听端口、处理新连接、数据读写);2)TCP客户端开发流程;3)TCP协议特性的简要说明(三次握手、可靠传输等);4)Socket编程的基本概念;5)提供了创建TCP服务端的核心代码示例。通过Qt的网络模块封装,开发者可以便捷地实现网络通信功能,无需深入了解底层协议细节。

2025-06-24 19:33:01 240

原创 Qt文本编辑器软件开发项目实战:轻量高效,功能全面,三万字全面解析!!源代码开源分享

这是一个基于Qt框架开发的简易文本编辑器应用程序NoteBook,具备以下核心功能: 文件操作:支持文本文件的打开、保存和关闭功能,可选择不同编码格式(UTF-8/GBK等) 文本编辑:采用自定义MyTextEdit控件实现文字编辑,支持Ctrl+滚轮缩放文本大小 界面布局:包含顶部工具栏(文件操作按钮)、中部文本编辑区和底部状态栏(显示光标位置) 快捷键支持:Ctrl+O打开文件、Ctrl+S保存文件、Ctrl+Shift++/-调整字体大小 编码切换:下拉框支持多种编码格式切换,自动重新加载文件内容 项

2025-06-23 18:43:26 988

原创 C++,Qt事件处理机制编程开发练习全解析,23000字解析!!

本文介绍了Qt框架中的事件处理机制,重点分析了通过事件过滤器和自定义控件实现文本编辑器的字体缩放功能。文章首先概述了Qt事件处理的基本流程(事件派发、过滤、分发和处理),随后详细讲解了两种实现方式:1) 继承QTextEdit重写事件方法(wheelEvent、keyPressEvent等);2) 使用事件过滤器(eventFilter)机制。两种方法都实现了按住Ctrl键时通过鼠标滚轮调整字体大小的功能。其中事件过滤器的实现更为灵活,无需继承即可修改控件行为。文章包含完整的代码示例和详细注释,分析了事件转

2025-06-22 18:52:26 495

原创 Qt、C++自定义按钮、组件、事件编程开发练习,万字实战解析!!

摘要:该项目是一个基于Qt Widgets的GUI应用程序,名为comstomSingal,主要展示了自定义信号与事件处理机制的实现。项目采用Qt5.12.12+MinGW开发环境,包含主窗口Widget和自定义按钮MyButton两个核心组件。 技术特点包括: 实现自定义按钮组件,通过QPixmap加载不同状态图标,重写mousePressEvent等事件处理函数 主窗口集成多种功能:文件读写操作(QFile/QTextStream)、文件对话框(QFileDialog)、组合框事件处理 重写窗口事件(c

2025-06-21 20:33:58 911

原创 Qt构造函数详解:布局与快捷键实战

本文解析了一个Qt Widget类构造函数的功能实现,主要包含四个核心部分:1. 界面初始化,通过setupUi()加载UI设计文件;2. 快捷键绑定,使用QShortcut为"Ctrl+O"和"Ctrl+S"设置快捷操作;3. 布局管理,通过setLayout确保窗口缩放时布局自动调整;4. 信号槽连接,实现对下拉框和文本编辑框的状态监控。文章还对比了Qt4与Qt5的信号槽语法差异,并给出了优化建议,如使用现代语法、添加资源释放等,完整展现了Qt窗口初始化的典型实现

2025-06-20 22:24:21 761

原创 解析Qt文件保存功能实现

这段代码实现了一个文件保存功能。当点击保存按钮时,首先检查文件是否打开,若未打开则弹出保存对话框让用户选择路径和文件名。然后以写入模式打开文件,将文本编辑框中的内容按用户选择的编码格式写入文件,并更新窗口标题显示当前文件名。代码使用了Qt的QFile进行文件操作,QFileDialog处理文件对话框,QTextStream实现文本流写入,并支持多种编码格式。特别注意的是,代码包含了编码设置功能(如UTF-8、GBK等),使文件保存更加灵活。该功能适用于文本编辑器等需要保存用户输入内容的场景。

2025-06-19 21:53:35 908

原创 Qt实现文本编辑器光标高亮技术

这段代码实现了一个文本编辑器的光标位置显示与行高亮功能。当光标位置变化时,自动更新界面上的行列位置标签(如"列:3,行:5"),并用黄色背景高亮当前行。主要技术点包括:1)使用QTextCursor获取光标位置信息;2)通过QTextEdit::ExtraSelection实现行高亮效果;3)设置FullWidthSelection属性确保整行高亮;4)利用QBrush设置高亮颜色。该功能常用于代码编辑器开发,提供直观的光标定位和当前行突出显示效果。

2025-06-19 21:34:39 947

原创 Qt编程:c++模版编程与高效使用QList容器

这篇文章摘要分为两部分: 第一部分讨论了C++模板类的命名问题,指出原代码中的PrintEverything类方法命名不当(使用printInt/setInt处理泛型数据),建议改为更具通用性的printData/setData。修正后的代码示例展示了如何正确使用模板类处理不同类型的数据(int和string)。 第二部分介绍了Qt框架中的QList容器类,说明其结合了数组和链表的特性,包括连续内存存储、动态调整大小、高效复制机制(隐式共享),以及适用场景(快速随机访问和两端操作)。最后简要列举了QList

2025-06-18 16:29:17 551

原创 QT文件操作与对话框交互详解,万字解析!!

这段代码是一个基于Qt框架的文件操作程序,主要实现了以下功能: 文件读写功能: 支持普通方式读取/写入文件内容 提供QTextStream流式读写接口 使用QFileDialog实现文件选择和保存对话框 界面交互: 包含多个操作按钮(读取、写入、保存等) 下拉框(comboBox)用于选择编码格式 采用Qt的信号槽机制连接界面事件 实现特点: 支持UTF-8等多种编码格式 提供调试信息输出(qDebug) 使用Qt自动连接机制(on_xxx_clicked命名规范) 代码结构包含: widget.h 头文件

2025-06-17 16:45:16 909

原创 Qt自动连接错误:解决on_btnOpen_clicked信号缺失

摘要:Qt提示"No matching signal for on_btnOpen_clicked()"警告,表明自动连接机制未找到对应按钮信号。常见原因包括:控件名不匹配(检查.ui文件中objectName是否为btnOpen)、槽函数拼写错误(注意大小写和ed后缀)、未重新生成UI类(需清理并重建项目)。解决方法包括:确保.h/.cpp文件中函数声明一致、遵循on_<控件名>_<信号名>命名规范、修改控件属性后重新编译项目。典型的修复流程是检查控件名称、验证

2025-06-16 17:36:16 388

原创 C++Qt文件操作实战:读写流万字全解析!!

摘要: 这段代码是一个Qt应用程序的主要框架,包含头文件保护和类定义。Widget类继承自QWidget,包含多个按钮点击槽函数,用于文件读写操作。代码展示了Qt的信号槽机制、文件操作(QFile、QTextStream)和对话框(QFileDialog)的使用方法。主要功能包括:读取/写入文本文件、流式文件操作、文件选择对话框等。代码注释详细解释了每个部分的作用,并指出了潜在的内存管理问题和改进建议。整体实现了一个基础的Qt文件操作界面程序。

2025-06-16 16:14:15 1161

原创 Qt文件操作:QFile与QTextStream全解析

QFile是Qt框架中用于文件处理的类,支持文本和二进制文件的读写操作。它继承自QIODevice,提供文件打开/关闭、读取/写入、信息查询及重命名/删除等基本功能。QTextStream是处理文本数据的辅助类,支持字符编码和格式化操作。示例代码展示了如何用QFile读取文件内容、写入数据,以及使用QTextStream进行带编码的文本读写。两个类都包含完善的错误处理机制,是Qt中实现文件操作的核心工具。

2025-06-15 16:07:33 215

原创 Qt信号与槽机制详解

本文详细解析了Qt项目的.pro配置文件和相关源文件,指出了可能导致"undefined reference to 'Widget::on_pushButton_clicked()'"错误的原因。分析表明: .pro文件配置正确,包含必要的widgets模块和C++11支持; 错误源于未在widget.cpp中实现on_pushButton_clicked()槽函数,尽管.ui文件中可能有名为"pushButton"的按钮自动连接该槽; 解决方案包括:在widget.

2025-06-15 15:14:37 761

原创 初探Qt信号与槽机制

摘要:Qt的信号与槽机制是其事件处理系统的核心,用于实现对象间通信。信号由事件触发,槽是响应信号的函数,通过QObject::connect()建立连接。对于按钮点击事件,Qt提供多种连接方式:1)通过uiDesigner自动生成;2)传统SIGNAL/SLOT语法;3)lambda表达式;4)函数指针方式。此外,开发者可以自定义信号与槽,在类声明中使用signals和slots关键字,并使用emit发射信号。调试时可使用QDebug输出信息。该机制实现了松耦合的组件通信,是Qt编程的重要特性。

2025-06-14 17:05:50 793

原创 文档测试发送

在上面的例子中, MyClass 有一个名为mySignal 的信号,它带有一个整型参数。定义槽:槽可以是任何普通的成员函数,但通常在类定义中用slots 关键字标识。槽可以有返回类型,也可以接受参数,但它们的参数类型需要与发出信号的参数类型匹配。例如:在这个例子中,我们定义了一个名为mySlot 的槽,它接收一个整型参数。连接信号与槽:使用QObject::connect 函数将信号与槽连接起来。当信号被发射时,连接到这个信号的槽将被调用。这行代码连接了myObject 的mySignal 信号到同一个对

2025-06-12 20:51:06 1076

原创 Qt Widget类解析与代码注释

Qt Widget类代码解析 Widget类是Qt框架中GUI程序的基础窗口类,包含以下核心部分: 构造函数: 继承QWidget基类 初始化Ui::Widget对象 调用setupUi()加载界面布局 析构函数: 释放Ui对象内存,防止泄漏 主要成员: Ui::Widget指针(ui) - 用于访问界面控件 Q_OBJECT宏 - 支持信号槽机制 Include防护 - 防止重复包含 该代码对应.ui设计文件,通过ui指针可操作界面元素,是Qt Widgets应用程序的典型结构。

2025-06-10 16:14:33 1174

原创 编程练习:Qt记事本项目:打造高效文本编辑利器

P3 记事本项目3.1 项目概述3.1.1 功能介绍支持文本创建,打开,保存,关闭的功能UI样式美化添加打开快捷键,添加保存快捷底部显示行列号及文本字符编码Ctrl加鼠标滚轮支持字体放大缩小

2025-06-08 17:47:13 922

原创 C++ 代码展示了 多继承(Multiple Inheritance) 和 抽象类(Abstract Class) 的使用

程序本身没有任何输出,因为所有函数都是空实现,也没有任何cout或打印语句。概念说明抽象类包含至少一个纯虚函数的类,不能实例化纯虚函数在基类中声明但无实现(= 0),必须在子类中重写多继承(Multiple Inheritance)一个类可以从多个基类派生,如函数重写(override)子类重新定义父类的虚函数接口设计风格通过抽象类定义接口规范,子类实现具体行为。

2025-06-07 20:28:28 349

原创 C++抽象类与多态实战解析

该C++代码展示了面向对象编程中的抽象类和运行时多态特性。通过定义抽象基类Teacher和两个具体子类EnglishTeacher、ProTeacher,演示了如何实现纯虚函数(goInClass()、startTeaching()、afterTeaching())的不同版本。主函数创建具体子类对象并调用其方法,以及通过基类指针实现多态调用。代码还涉及动态内存管理(new/delete)注意事项。输出样例展示了不同教师类型在教学过程中的差异化行为,如编程老师"拒绝读PPT"的教学特色。代

2025-06-04 20:24:42 713

原创 C++多态与继承实战解析

本文通过C++代码示例演示了面向对象编程中的多态和继承特性。定义了一个遥控器基类RemoteCon及其三个派生类(电视、音响、灯光遥控器),通过虚函数openUtils()的重写实现不同行为。测试函数和主程序展示了运行时多态:基类指针指向不同子类对象时,调用相应重写方法;以及通过引用参数传递对象时的多态行为。代码体现了继承、虚函数、方法重写等核心概念,适用于需要统一接口但行为差异的场景,如多种设备遥控器的实现。

2025-06-04 20:09:08 392

原创 C++多重继承详解与实战解析

摘要:本文解析了一个C++多重继承示例程序,展示了派生类同时继承两个基类(ClassA和ClassB)的实现方式。程序通过Derived类继承了displayA()和displayB()方法,并使用作用域解析运算符解决同名函数testFunc()的调用冲突。主函数演示了如何调用继承方法和派生类方法,最终输出三行结果。文章还指出了多重继承的函数名冲突问题及解决方法,并简要讨论了多重继承的优缺点,建议复杂场景可使用接口类替代。程序完整展示了C++多重继承的基本语法和典型应用场景。

2025-06-01 15:56:44 447

原创 C++代码常见问题解析与优化(虚函数)

代码存在以下问题:1. Vehicle类中的stop()函数声明但未定义;2. Roadster类的openTopped()和pdrifting()函数未定义;3. 变量名拼写错误(contry应为country);4. Bike类缺少构造函数。修改建议:为未定义函数添加实现,修正变量名,为Bike类添加构造函数。修改后代码可正常执行,并输出构造函数调用信息和各成员函数的执行结果。

2025-06-01 10:57:46 191

原创 C++继承与构造函数调用详解

内容说明继承方式使用public继承保留基类成员访问权限构造函数调用顺序先调用基类构造函数,再调用派生类构造函数初始化列表推荐使用来调用基类构造函数成员函数可以继承也可以扩展新的功能封装性派生类拥有基类所有非私有成员如果你还想了解析构函数调用顺序、虚继承、多态、抽象类等内容,也可以继续提问 😊。

2025-05-30 17:06:46 393

原创 C++继承权限与访问控制详解

本文通过C++代码示例详细讲解了继承中的访问控制机制。代码展示了Vehicle作为基类,以及TestClass(私有继承)、Truck(保护继承)、Bickle和Roadster(公有继承)作为派生类的实现。重点分析了不同继承方式下基类成员在派生类中的访问权限变化:公有继承保留原权限,保护继承将public降为protected,私有继承将所有成员变为private。文章通过main函数中的实例验证了访问控制规则,并总结出继承权限对照表。最后强调private成员始终不可被派生类访问,指出公有继承是面向对象

2025-05-30 11:43:38 190

原创 C++类继承详解:权限控制与继承方式解析

Vehiclecpp深色版本引入标准输入输出库,并使用命名空间std,避免每次写std::cout。cpp深色版本// 基类,父类class Vehicle { // 交通工具,车,抽象的概念定义一个基类Vehicle,表示交通工具的基本属性和功能。cpp深色版本public:// 公有成员:类型// 国家// 颜色// 价格// 轮子数量这些是public成员变量,外部可以直接访问。

2025-05-27 21:57:52 539

原创 C++中使用类的继承机制来定义和实现基类与派生类

这段代码展示了如何在C++中使用类的继承机制来定义和实现基类与派生类。

2025-05-26 16:18:25 329

原创 Google C++ Style Guide 谷歌 C++编码风格指南,深入理解华为与谷歌的编程规范——C和C++实践指南

来看,return;(比如刷新 log),您可以把它绑定到 _at_quick_exit(). 如果您想在 exit() 和 quick_exit() 都用上该 handler, 都。Tip: 使用 C++ 的类型转换, 如 static_cast<>(). 不要使用 int y = (int)x 或 int y = int(x) 等转换方式;TextQuery::TextQuery(std::string word) : word_(word) {} , 其中 word_ 自然是类内私有成员。

2025-05-22 20:44:59 1027

原创 C++静态成员变量与对象生命周期解析

Myclasscpp深色版本说明:引入标准输入输出库,并使用标准命名空间std,避免每次写std::cout。cpp深色版本说明:定义一个类Myclass。cpp深色版本private:// 静态变量,用于记录当前存在的对象数量说明:声明一个静态成员变量。它属于整个类本身,而不是某个具体的对象。所有对象共享这个变量,用来统计当前有多少个Myclass对象存在。cpp深色版本public:// 构造函数中增加计数说明这是默认构造函数。每当创建一个。

2025-05-22 20:22:40 735

原创 深入解析C++静态成员变量与函数

MyClasscpp深色版本说明:包含标准输入输出流库,用于使用std::cout进行输出。cpp深色版本说明:定义一个类,名为MyClass。cpp深色版本说明:接下来的成员都是公共(public)权限,意味着外部可以访问这些成员。cpp深色版本// 静态成员变量说明:声明一个静态成员变量。“静态”表示这个变量属于整个类本身,而不是类的某个具体对象。所有MyClass的对象共享同一个。cpp深色版本// 每创建一个对象,静态变量增加1说明。

2025-05-21 22:09:23 327

原创 C++静态函数错误解析与修复指南练习

内容说明static成员函数不能访问非静态成员变量static成员变量属于整个类,不是某个对象,需在类外定义和初始化错误原因是静态函数却试图修改非静态变量datas修复方法去掉static,或者将对象作为参数传入静态函数如果你还有关于static成员、作用域、生命周期等问题,也欢迎继续提问!

2025-05-20 15:05:45 250

原创 C++析构函数练习

m1是栈上创建的对象,当main()函数执行完毕后,系统会自动调用它的析构函数。m2是堆上创建的对象,必须手动使用delete删除,否则会造成内存泄漏。每个对象都会在销毁时调用一次析构函数,确保其所占用的动态内存被正确释放。如果你有任何关于深拷贝、浅拷贝、内存管理或 RAII 等进阶话题的问题,也可以继续问我!

2025-05-20 11:33:20 111

原创 C++编程this指针练习

cpp浅色版本private:// 私有成员变量:品牌int year;// 私有成员变量:年份表示这些数据成员只能被类内部的成员函数访问。功能描述构造函数初始化品牌和年份display()显示汽车的品牌和年份setYear()修改年份并返回对象引用以支持链式调用链式调用是面向对象编程中常见的设计模式如需进一步扩展,还可以添加更多属性(如颜色、价格等)或方法(如获取品牌、比较年份等)。

2025-05-19 17:00:54 277

原创 C++运算符重载练习

该程序定义了一个 Person 类,用于表示“人”的概念,并通过重载 == 运算符来判断两个 Person 对象是否代表同一个人。判断依据是:如果两个对象的 name(姓名)和 inNumberTail(身份证尾号)都相同,则认为这两个对象“相等”。在 main() 函数中,创建了两个完全相同的 Person 对象,并使用 == 运算符进行比较,输出结果为 1(即 true),表明两个对象相等。该程序展示了如何通过运算符重载实现自定义类型的比较逻辑,为进一步扩展类(如添加构造函数、封装成员变量等)提供了基础

2025-05-16 15:01:18 185

原创 以项目的方式学QT开发C++(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!

5.5 TCP客户端项目开发 核心代码 #include "mainwindow.h" #include "ui_mainwindow.h" // 主窗口的构造函数 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 设置 UI ui->centralwidget->setLayout(ui->verticalLayoutGlobal);

2025-05-15 22:08:50 604

空空如也

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

TA关注的人

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