自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Linux与Windows文件系统的区别》

Linux和Windows在文件系统方面有许多显著的差异,各自有其独特的特点和优势。选择合适的文件系统取决于具体的使用需求和操作环境。了解这些差异可以帮助大家更好地管理和维护他们的系统,并选择最适合自己需求的操作系统。

2024-07-10 17:55:51 839 1

原创 深入探讨Qt中的QVariant

QVariant是一个通用的容器类,能够存储任意类型的值。它在Qt框架中扮演着重要角色,尤其是在需要存储和传递多种类型的数据时。QVariant通过内部的类型信息和值的联合体,实现了类型安全的动态类型存储和转换。QVariant是Qt中非常重要且强大的类,能够动态存储和转换不同类型的值。它与Qt的元对象系统紧密集成,使其在信号槽机制、动态属性系统等方面发挥重要作用。在实际开发中,合理使用QVariant可以大大简化代码,增强代码的灵活性和可维护性。希望本文能帮助你更好地理解和使用QVariant。

2024-06-04 13:55:37 622

原创 深入探讨Qt中的容器类:QList与QVector

QList是Qt中一个通用的容器类,可以存储任意类型的元素。尽管其名称中带有“List”,但它的内部实现更接近于动态数组,而不是链表。以下是对QListQVector也是Qt中一个常用的容器类,与QList相比,它在设计和使用上有一些显著的区别。QVector更类似于C++标准库中的,其内部实现为动态数组。QList和QVector都是Qt中强大的容器类,但它们的内部实现和适用场景有所不同。QVector:通常是更好的选择,特别是当你需要存储简单数据类型并且对性能有较高要求时。它具有与类似的接口和性能。

2024-06-03 17:22:13 1011

原创 C++ Qt:QString与数字之间的相互转换

在Qt中,QString提供了丰富的功能,方便与各种数值类型进行转换。无论是整型、浮点型,还是其他类型,Qt都提供了相应的方法来满足开发需求。掌握这些转换方法,可以让你的代码更加高效和简洁。希望这篇文章能帮助你更好地理解和使用QString与数值类型之间的转换。如果你有任何问题或建议,欢迎留言讨论。

2024-05-29 15:51:55 705

原创 Linux C++嵌入式软件开发(★★★★学习路线)

学习Linux C++嵌入式软件开发是一个循序渐进的过程,需要掌握多个领域的知识。以下是一个详细的学习路线,并附上一些建议,帮助你系统地掌握这一领域。

2024-05-23 11:04:28 1250 1

原创 如何编写高效、可维护和可扩展的代码?【★★★★★程序设计原则】

C++是一种功能强大且灵活的编程语言,其设计原则有助于编写高效、可维护和可扩展的代码。

2024-05-17 17:24:46 976

原创 windows 10/11 安装Linux子系统(最新、详细教程)

对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。2.对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。如果运行成功,会提示你设置新安装完成的Ubuntu系统的用户名和登录密码。如果自己的win10系统版本不满足上述要求,可将系统更新到最新版本。我演示用的是d:\xiazai\linux1,等他下载完即可,

2024-05-17 16:48:29 2863 5

原创 C++ 选择排序,递归与非递归实现

【代码】C++ 选择排序,递归与非递归实现。

2024-04-19 11:22:22 100

原创 Qt + VS2017 创建一个简单的图片加载应用程序

本文介绍了如何使用Qt创建一个简单的图片加载应用程序。通过阅读本文,您学会了如何在Qt中处理界面操作和文件操作,并将其应用到实际的应用程序开发中。该应用程序可以打开图片文件并在界面上显示选定的图片,并保存用户上次选择的图片路径。在Qt Designer中设计应用程序的界面,添加一个按钮用于打开图片文件,一个文本框用于显示图片路径,以及一个标签用于显示图片内容。首先,在Qt Creator中创建一个新的Qt Widgets应用程序项目,并命名为LoadImageApp。

2024-04-02 17:27:00 604

原创 Lambda 表达式

Lambda 表达式是一种匿名函数,允许您在不定义函数的情况下将代码块传递给其他函数或方法。Lambda 表达式通常用于简化代码,并使代码更具可读性。

2024-04-01 20:14:30 787

原创 Qt Creator 与 VS 开发 Qt 项目的详细比较(详细版)

Qt 是一个功能强大、跨平台的应用程序框架,可用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序和嵌入式应用程序。Visual Studio 是 Microsoft 开发的集成开发环境 (IDE),可用于开发各种类型的应用程序,包括 Qt 程序。

2024-03-29 11:21:38 3304

原创 Qt创建窗口选择的三个父类介绍 ----- QWidget、QMainWindow、QDialog

QWidget是Qt中所有用户界面元素的基类,提供了窗口的基本功能,并允许用户自定义窗口的外观和行为。通过QWidget,可以方便地创建和管理用户界面,实现丰富的交互体验。

2024-03-21 20:30:14 760

原创 Qt5自定义信号与槽的实现方式

在Qt中,信号是特殊的成员函数,它们用于向其他对象发出通知。自定义信号是通过在类中声明信号来实现的,注意只需要声明,不需要实现。Q_OBJECTsignals:在上面的示例中,是一个自定义信号,它可以带有参数。当该信号被发射时,连接到它的槽将被调用。槽是普通的成员函数,用于响应信号。我们可以将自定义的槽函数连接到自定义信号,以便在信号发射时执行特定的操作。Q_OBJECT在上面的示例中,customSlot是一个自定义槽,它接受一个整数参数。

2024-03-21 11:14:42 835

原创 Qt布局管理器使用指南

Qt布局管理器提供了多种灵活的布局方式,包括水平布局、垂直布局和网格布局。通过合理使用这些布局管理器,开发者可以轻松创建各种复杂的用户界面,并且使界面在不同平台和窗口大小下都能够自动调整和适应。布局管理器是Qt界面设计中的重要组成部分,值得大家学习和掌握。

2024-03-19 17:02:24 437

原创 Qt对话框使用指南

Qt提供了多种类型的对话框,包括消息框、文件对话框、颜色对话框、输入对话框等,满足了不同场景下用户交互的需求。每个对话框类都提供了丰富的参数设置接口,开发者可以根据需求自定义对话框的标题、文本内容、按钮选项等,使对话框更符合实际需求。对话框类的调用方式简单直观,只需传入少量必要的参数即可创建和显示对话框,无需复杂的操作,降低了开发的复杂度。Qt对话框类设计简洁直观,界面美观,提供了友好的交互体验,使用户能够快速理解对话框的用途,并进行操作。

2024-03-19 16:54:22 653

原创 Qt5信号槽机制详解(最新,超级详细!!!)

在Qt4中,使用SIGNAL()和SLOT()宏来指定信号和槽,而在Qt5中可以直接使用函数指针。Qt5中的connect()函数更加类型安全,编译器在编译期间能够进行类型检查和错误检测,有助于提高代码的可靠性和安全性。3. 信号槽机制示例代码下面是一个简单的示例,演示了如何使用connect()Q_OBJECTsignals:// 发射信号这表明槽函数被成功调用,并且带有参数值42,说明信号槽连接已经成功建立,并且信号被成功发射。4. 使用Lambda函数作为槽函数。

2024-03-18 19:09:30 3973

原创 Qt与MFC:跨平台现代化与传统Windows框架的对比

Qt是一个跨平台现代化的框架,适用于各种类型的应用程序开发,而MFC主要适用于Windows平台,使用相对传统,逐渐被现代化框架所替代。开发者可以根据项目需求和个人喜好选择合适的框架。

2024-03-18 17:27:24 1649

原创 Qt内存管理与对象树:正确管理控件内存的关键

对象树是指控件对象之间的父子关系,形成一个树形结构。在Qt中,控件对象可以有父对象,也可以没有。当一个控件对象拥有父对象时,它被称为父对象的子对象。多个子对象可以共享一个父对象,从而形成对象树结构。Qt的对象树是一个重要的概念,对于正确管理控件对象的内存非常关键。通过建立父子关系,可以实现自动内存管理和事件传递。因此,在编写Qt应用程序时,务必要注意正确创建和使用对象树,以确保程序的稳定性和性能。

2024-03-16 17:34:40 732

原创 C++ 数组详解,很全,很详细

数组是相同类型的对象序列,它们占据一块连续的内存区。传统的 C 样式数组是许多 bug 的根源,但至今仍很常用,尤其是在较旧的代码库中。在新式 C++ 中,我们强烈建议使用 std::vector或 std::array,而不是本部分所述的 C 样式数组。这两种标准库类型都将其元素存储为连续的内存块。但是,它们提供更高的类型安全性,并支持保证指向序列中有效位置的迭代器。

2024-01-06 17:39:51 1802

原创 Visual Studio 2013 中创建一个基于 Qt 的动态链接库:并在MFC DLL程序中使用

生成项目后,直接删除有向导生成的***_global.h 文件,整个文件就是一个导出宏,后面自己重新定义项目工程的。当然不删除也是可以的,看个人习惯。可见编译成功,接下来就是修改工程配置,对应实际开发中的情景。接下面,先运行试试,看看编译是否有问题,选行x64平台。

2023-12-27 09:04:32 1034

原创 最新保姆级教程:Windows 上安装 Visual Studio(超级详细)

欢迎来到我的第一篇分享!今天我将向大家介绍如何在 Windows 系统上安装 Visual Studio,这是一款强大的集成开发环境(IDE),用于 C/C++ 开发以及其他许多语言。

2023-12-16 13:30:21 5923 2

原创 探索C++中的常见排序算法

冒泡排序是一种简单直观的排序算法,它通过不断交换相邻元素的位置来达到排序的目的。算法的基本思想是重复遍历要排序的数列,每次比较相邻两个元素,如果它们的顺序错误就交换它们,直到没有再需要交换的元素。插入排序是一种简单直观的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。选择排序是一种简单直观的排序算法,它的基本思想是每次从待排序的数据元素中选择最小(或最大)的一个元素,将其放在已排序序列的末尾。希望能够帮助你更好地理解和使用这些排序算法。

2023-12-13 22:20:19 496

原创 正确使用AFX_MANAGE_STATE宏管理MFC模块状态, AFX_MANAGE_STATE宏作用,真的很重要!!!

在 DLL 中使用 MFC 时,每个线程都需要正确的 MFC 模块状态,以确保使用 MFC 功能的正确性。在使用 MFC(Microsoft Foundation Classes)开发 DLL(动态链接库)时,正确管理 MFC 模块状态是确保功能正常运行的关键。在使用 MFC 开发 DLL 时,正确设置 MFC 模块状态是确保功能正常运行的基本步骤。宏是 MFC 提供的用于设置线程的 MFC 模块状态的工具。宏的重要性,以及在 DLL 中正确设置 MFC 模块状态的步骤。在 DLL 中的导出函数中,使用。

2023-12-08 18:55:08 1033

原创 《VS2013+ Qt5.6 创建Qt对话框(*.ui 文件, *.h, *.cpp )》

在本篇博客中,我们将介绍如何使用Visual Studio 2013和Qt 5.6新建一个Qt对话框,包括创建.ui文件、.h文件和.cpp文件,以及构建一个基本的用户界面和业务逻辑。(注意vs2013 跟后面的vs2017、vs2019…等版本创建的方式不一样,因此单独拿出来提一下)

2023-10-24 14:52:50 636 1

原创 C++ std::unique_ptr 详解

std::unique_ptr 是 C++11 中引入的智能指针,用于管理动态分配的对象。它提供了独占所有权的能力,确保资源在不再需要时自动释放。

2023-06-29 17:13:58 2237

原创 C++ 教程(最新、最全、3.5万字总结),强烈建议收藏!!!

我们详细讲解了C++的语法和语义,包括变量和数据类型、运算符、控制流语句、函数和函数重载、结构体和类等。每个知识点都附带了具体的示例代码和解释,以帮助读者更好地理解。我们还介绍了C++标准模板库(STL),包括各种容器(如向量、列表、集合、映射等)和常用算法(如排序、查找、变换等)。对于每个容器和算法,我们提供了详细的讲解和示例代码,帮助读者熟悉和应用STL。最后,我们总结了整个教程的内容,强调了C++作为一门强大而灵活的编程语言的优点,并鼓励读者继续深入学习和探索C++的更多高级特性和应用领域。

2023-06-16 16:02:26 23965 5

原创 MFC 获取编辑框(Edit Control)数据

全网最详细的获取MFC编辑框数据的方式,当涉及到在 MFC 中获取编辑框(Edit Control)的数据时,你可以使用以下几种常用方法:

2023-06-13 14:35:19 5725 2

原创 C++ MFC CListCtrl 表格让特定行灰显

在某些场景需要表格,灰显一些特定的行,同时用户还不能修改该行的状态。

2023-06-08 19:19:22 306

原创 【C++ 中的字符串(string、CString、wstring)类型转换】

在 C++ 编程中,经常会遇到不同字符串类型之间的转换,比如 string、CString 和 wstring。这些字符串类型具有不同的字符集和底层实现。本篇博客将介绍如何在这些字符串类型之间进行相互转换,并提供多种转换方法供选择。

2023-06-07 16:11:20 2327 2

原创 【MFC中处理TTN_NEEDTEXT通知消息】

在MFC中,工具提示(tooltip)是一种常见的用户界面元素,用于在用户将鼠标悬停在控件上时提供相关信息。当工具提示控件需要显示文本时,它会发送`TTN_NEEDTEXT`通知消息给父窗口,以便父窗口提供工具提示文本。

2023-06-07 08:49:11 289

原创 【C++ BCGControlBar】使用BCGControlBar创建专业的C++应用程序界面

BCGControlBar 是由 BCGSoft 公司开发的 C++ 库,旨在提供丰富的用户界面控件和工具,帮助开发人员快速构建功能强大、美观的应用程序。提供专业的外观和主题支持,如 Office、Visual Studio 和 Windows 10 主题。自定义工具栏和菜单栏的创建,允许开发人员灵活定制界面。支持多文档界面(MDI)和标签页布局,方便用户管理多个文档或视图。提供丰富的视图控件,如树状视图、列表视图和网格视图,用于展示和管理数据。

2023-06-02 17:08:52 1547 2

原创 【C++ dynamic_cast】 类型转换(多态类型、向下)

它可以在运行时检查对象的实际类型,并安全地执行转换。之间的转换,例如基类指针或引用转换为派生类指针或引用。只能用于多态类型的转换。使用前需要进行类型检查,并且只能用于多态类型。它可以在运行时检查对象的实际类型,并在转换成功时返回指针或引用,转换失败时返回空指针或抛出异常。的返回值是目标类型的指针或引用,如果转换成功,则返回指向目标类型的指针或引用;只能用于具有虚函数的类层次结构中,即只能用于多态类型之间的转换。对空指针的转换总是成功的,并返回空指针。这在避免空指针异常的同时,也可以用于判断指针是否为空。

2023-06-01 20:26:29 566

原创 【C++ static_cast】类型转换

如果尝试将一个基类指针转换为派生类指针,而指针实际上并不指向派生类对象,将导致未定义的行为。向上转型(派生类指针转换为基类指针):如果存在公有继承关系,并且派生类对象实际上是基类对象的一部分,那么可以使用。可以进行基本类型之间的转换,如整数类型之间的转换、浮点类型之间的转换等。在合适的情况下是安全的,但在进行向下转换时应谨慎使用,并且最好使用。可以进行基类指针向派生类指针的转换,但是这是一个不安全的转换。是安全的,只要转换是合理的,没有精度丢失或溢出等问题。运算符进行运行时类型检查,以确保转换的安全性。

2023-06-01 16:56:31 391

原创 【任意多边形求布尔差运算】:直线、弧线都可以

请注意,这只是一个简单的示例代码,仅处理了直线段和弧线段的情况,并没有考虑更复杂的情况,例如多个交叉区域、重叠区域等。此外,代码中的弧线段处理部分仅是一个简单的示例,实际情况下需要根据具体需求进行适当的调整和优化。这只是一个简单的示例代码,用于展示处理带有弧线的多边形布尔交集的思路。分割的数量越多,近似的精度就越高。执行布尔运算:现在,可以使用标准的多边形布尔运算算法,如求交集、并集或差集,对构建的多边形进行操作。以下是一个更完整的示例代码,用于计算两个任意多边形的布尔交集,包括直线段和弧线段的处理。

2023-06-01 16:04:37 500

原创 C++ 一文搞懂输入流、输出流

当涉及到和时,我们通常是指在和(例如文件、控制台等)之间的。是用于从外部源(例如文件、键盘输入等)读取数据到程序中的流。输入流提供了一种逐个字符或逐个数据块的方式,将外部数据传输到程序中进行处理。例如,从键盘读取用户输入、从文件中读取数据等都是使用输入流。是用于将程序中的数据发送到外部源(例如文件、屏幕输出等)的流。输出流提供了一种逐个字符或逐个数据块的方式,将程序中的数据传输到外部进行显示、保存等操作。例如,将数据输出到文件、将数据打印到屏幕上等都是使用输出流。

2023-05-29 15:19:21 2006

原创 【 Git 分支管理】

Git Flow 是一种常用的 Git 分支管理模型,旨在支持团队协作和版本控制。本文将介绍 Git Flow 模型的基本原则和常用分支。

2023-05-26 15:45:29 75

原创 std::String与CString 相互转换

/ 返回值为 char* 实质就是string字符串。

2023-04-17 10:18:03 950

原创 数据结构01-基本概念了解

数据结构

2023-03-06 20:30:30 54

原创 一文搞懂:C++ 指针常量 常量指针

C++ 再也不再搞不清 指针常量、常量指针

2023-01-12 20:13:39 233 2

原创 字符数组 - 数组名

真正的搞懂字符数组,数组名的本质

2022-11-02 08:44:51 526

空空如也

空空如也

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

TA关注的人

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