自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 16 C++调试工具、代码优化、性能分析和内存管理

调试工具:GDB和IDE内置调试器是调试C++程序的利器,熟练掌握它们可以大大提高调试效率。代码优化:选择合适的数据结构、避免不必要的拷贝、使用内联函数和编译器优化选项等技巧可以显著提升代码性能。性能分析:使用性能分析工具找出程序中的瓶颈,并针对性地进行优化。内存管理:使用智能指针、RAII原则和内存分析工具来避免内存泄漏和其他内存相关问题。

2025-03-12 16:59:28 493

原创 15. C++多线程编程-网络编程-GUI编程(如Qt)学习建议

学习如何创建自定义控件,扩展Qt的功能。

2025-03-02 20:57:21 800

原创 14. C++11 / 14新特性常用的用法详解

C++11 和 C++14 引入了许多新特性,使得 C++ 编程更加现代化和高效。

2025-03-02 12:56:18 444

原创 13 C++ 文件操作用法详解

文件的打开与关闭:使用open()和close()函数。文件的读写操作:使用<<>>getline()read()和write()函数。二进制文件与文本文件的处理:文本文件使用字符流操作,二进制文件使用二进制流操作。

2025-03-01 23:09:22 159

原创 12 C++异常概念和用法详解

在C++中,异常处理是一种用于处理程序运行时错误的机制。异常处理允许程序在遇到错误时,能够优雅地处理这些错误,而不是直接崩溃或产生未定义行为。C++中的异常处理主要通过、和关键字来实现。异常是指在程序执行过程中发生的异常情况,通常是由于程序逻辑错误、资源不足、无效输入等原因引起的。C++中的异常处理机制允许程序在检测到异常时,抛出一个异常对象,并在程序的某个地方捕获并处理这个异常。块:块用于包含可能会抛出异常的代码。如果在块中的代码抛出了异常,程序会立即跳转到与之匹配的块中进行异常处理。块:块用于捕获并处理

2025-02-26 18:38:49 307

原创 11-C++模板库(STL)容器、迭代器和算法详解

V信公众号: 程序员架构笔记C++ 标准模板库(STL,Standard Template Library)是 C++ 标准库的一部分,提供了丰富的通用数据结构和算法。STL 的核心组件包括容器、迭代器和算法。以下是对这些组件的简要介绍:容器是用于存储数据的对象。STL 提供了多种容器,分为以下几类::动态数组,支持快速随机访问,尾部插入和删除效率高。:双向链表,支持高效的插入和删除操作,但不支持随机访问。:双端队列,支持在头部和尾部高效插入和删除,支持随机访问。:有序集合,元素唯一,基于红黑树实现。:允许

2025-02-23 20:18:51 606

原创 10 C++ 模板与泛型编程详解

C++ 的模板和泛型编程提供了强大的工具来编写灵活且可重用的代码。通过函数模板、类模板、STL 以及模板特化和模板元编程,你可以构建高效且易于维护的 C++ 程序。

2025-02-23 09:05:00 922

原创 09-C++常见运算符重载

/ 使用重载的 << 运算符。// 使用重载的 + 运算符。// 使用重载的 - 运算符。// 使用重载的 * 运算符。// 使用重载的 / 运算符。if (p1 == p2) { // 使用重载的 == 运算符。// 使用重载的 >> 运算符。// 重载 == 运算符。// 重载 << 运算符。// 重载 >> 运算符。// 重载 + 运算符。// 重载 - 运算符。// 重载 * 运算符。

2025-02-22 22:26:49 555

原创 08 C++面向对象编程(OOP)封装、继承 和 多态详解

封装:通过访问控制隐藏实现细节。继承:单继承和多继承,派生类可以继承基类的成员。多态:通过虚函数实现基类指针调用派生类的重写函数。抽象类:包含纯虚函数的类,不能实例化。接口:通过纯虚函数实现的抽象类,只定义方法。这些特性使得C++能够支持强大的面向对象编程范式,帮助开发者构建模块化、可扩展的软件系统。

2025-02-22 13:54:16 810

原创 07 C++中,结构体(struct)和类(class)访问控制权限等用法

public结构体是一种将不同类型的数据组合在一起的数据结构。结构体的定义使用struct关键字。// 定义一个结构体int age;// 创建结构体对象// 访问结构体成员return 0;类是一种将数据和操作数据的方法封装在一起的数据类型。类的定义使用class关键字。// 定义一个类public:int age;// 创建类对象// 调用成员函数return 0;结构体和类都可以包含数据成员和成员函数。

2025-02-22 13:20:21 1181

原创 06 C++指针与引用详解

指针用于存储内存地址,可以通过指针间接访问和修改数据。数组名本质上是一个指针,指向数组的第一个元素。引用是变量的别名,必须在声明时初始化,且不能改变其引用的对象。动态内存分配使用new和delete来管理堆内存,避免内存泄漏。

2025-02-22 10:22:59 745

原创 05-C++数组和字符串用法

/ 返回子字符串的起始位置,若未找到返回std::string::npos。// 从索引1开始,替换3个字符为"ipp"// 声明并初始化std::string。// 或者 str.size()int arr[] = {1, 2, 3, 4, 5};

2025-02-21 23:13:06 743

原创 04.C++函数的详细说明,包括函数的定义与调用、参数与返回值、函数重载以及递归函数。

返回类型:函数返回的数据类型(如intdoublevoid等)。函数名:函数的名称,用于调用函数。参数列表:函数接收的输入参数,用逗号分隔。函数体:函数的具体实现代码。cpp// 定义一个函数。

2025-02-21 23:09:30 661

原创 03. C++中,条件语句、循环语句和控制语句是编程中常用的结构

循环用于重复执行代码块,通常用于已知循环次数的情况。循环类似,但它至少会执行一次代码块,然后再检查条件。语句用于跳过当前循环的剩余部分,直接进入下一次循环。语句用于根据条件执行代码块。如果条件为真,则执行。语句用于根据变量的值执行不同的代码块。循环用于在条件为真时重复执行代码块。语句用于从函数中返回值并退出函数。条件不满足时检查另一个条件。条件都不满足时执行代码块。语句用于立即退出循环或。

2025-02-21 20:54:59 1085

原创 02-C++基础语法 数据类型,变量与常量,变量与常量,输入输出

/ 输出: Age: 25。// 逻辑与 (AND)bool result2 = (a > 5 || b < 2);// 逻辑或 (OR)// 逻辑非 (NOT)bool isLess = (a < b);// 从控制台读取输入。

2025-02-17 23:23:51 765

原创 01-C++基础编程环境搭建以及helloword等

Clang 是 LLVM 项目的一部分,是一个高效、模块化的 C++ 编译器。(2020 年发布),之前的版本包括 C++11、C++14 和 C++17。:MSVC 是微软开发的 C++ 编译器,主要用于 Windows 平台。:C++ 几乎完全兼容 C 语言,可以直接使用 C 语言的库和代码。:GCC 是一个开源的编译器集合,支持多种编程语言,包括 C++。:C++ 继承了 C 语言的高效性,可以直接操作内存和硬件。

2025-02-16 20:53:40 881

原创 一篇文章就能搞懂c++基础学习的路线

C++的历史与特点安装C++编译器(如GCC、Clang、MSVC)配置开发环境(IDE:Visual Studio、Code::Blocks、CLion等)编写第一个C++程序:Hello World。

2025-02-16 20:53:36 757

原创 16-使用QtChart创建动态图表:入门指南

QtChart是Qt框架中的一个强大模块,用于创建各种类型的图表,如折线图、柱状图、饼图等。它提供了丰富的API和灵活的配置选项,使得开发者能够轻松地将数据可视化集成到应用程序中。本文将介绍如何使用QtChart创建一个简单的动态折线图,并附带代码示例。

2025-02-16 20:38:53 1087

原创 15-Qt QMessageBox用法详解

以上 6 种通用的 QMessageBox 对话框,界面上的图片无法修改,按钮上的文字也无法修改(例如无法将 OK、No 改成中文)。如果想修改它们,就需要自定义一个 QMessageBox 对话框。QMessageBox对话框的创建程序中创建 QMessageBox 对象,必须先引入头文件。QMessageBox 类提供了两个构造函数,分别是:第一个构造函数可以创建一个“空白”对话框,即对话框中不包含任何文本和按钮。

2025-02-09 14:27:44 885

原创 14-Qt QPushButton按钮用法详解

钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮)、QRadioButton(单选按钮)、QToolButton(工具栏按钮)等。QPushButton 是实际开发中最常使用的一种按钮,本节就给大家详细讲解它的用法。

2025-02-09 14:26:01 844

原创 13-Qt QLineEdit单行输入框用法详解

QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框实际开发中,我们经常用到 QLineEdit 输入框,比如接收用户输入的个人信息、账户信息、角色名称等,就可以用 QLineEdit 实现。每个单行输入框都是 QLineEdit 类的一个实例对象,QLineEdit 类提供有两个构造函数,分别是:QLineEdit(QWidget *parent = Q_NULLPTR)QLineEdit(const QSt

2025-02-09 14:25:29 595

原创 12-Qt QFile文件操作详解

很多应用程序都需要具备操作文件的能力,包括对文件内容进行读/写、创建和删除文件等,甚至某些应用程序的诞生纯粹是为了操作文件,比如 WPS Office、PDFedit 等。为此,Qt 框架提供了 QFile 类专门用来操作文件。

2025-02-09 14:22:54 813

原创 11-Qt布局管理详解(5种布局控件)

实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。总之借助布局管理器,我们无需再逐个调整控件的位置和大小,可以将更多的精力放在软件功能的实现上。Qt 共提供了 5 种布局管理器,每种布局管理器对应一个类,分别是 QVBoxLayout(垂直布局)、QHBoxLayout(水平布局)、QGridLayout(网格布局)、QFormLayout(表单布局)和 QStackedLayout(分组布局),它们的继承关系如下图所示:图 1 各个布局管理类的继承关系。

2025-02-09 14:21:19 1055

原创 10-Qt pro文件详解

默认情况下,每个 Qt 项目都包含一个后缀名为.pro、名称和项目名相同的文件,我们通常称它为项目管理文件或者工程管理文件(简称 pro 文件)。例如,新建一个 Qt 项目,如下图所示:图 1 项目结构该项目的项目名为 Demo,项目中共包含 4 个文件,其中 Demo.pro 就是项目管理文件。所谓模块,可以简单地理解为文件夹或者压缩包,内部包含多个功能相近的类。作为一款成熟的 GUI 框架,Qt 提供了大量的类,根据这些类的功能,Qt 将它们分成了几个组,每个组称为一个模块。

2025-02-09 14:12:45 901

原创 09-Qt QListWidget列表框用法详解

很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐播放器中以列表的形式展示音乐资源,用户可以选择自己喜欢的音乐(如图 1b) 所示)。图 1 常见的列表窗口使用 Qt 框架开发 GUI 程序,如果需要以列表的方法展示数据,可以优先考虑用 QListWidget 类实现。

2025-02-09 14:10:56 847

原创 08-Qt QTableWidget表格控件的用法(非常详细)

QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给用户。QTableWidget 的结构布局如图 1 所示。QTableWidget控件默认情况下,表格会显示表头,表头的内容为行号或列号。根据实际需要,我们可以将表头隐藏起来。QTableWidget 继承自 QTableView 类,QTableView 类也可以用来显示表格控件。

2025-02-09 14:10:19 1303

原创 07-Qt QTreeWidget树形控件用法详解

通过先将 item 和 item2 添加到 items 容器中,然后再将 items 传递给 treeWidget 对象的 addTopLevelItems() 方法,就可以将 items 容器中的所有结点添加到 treeWidget 控件中,作为该控件的顶层结点。图 2 中显示的数字 1,是 QTreeWidget 控件中的表头,默认情况下 QTreeWidget 只有一个表头,表头的内容就是 1。这里给大家举个简单的例子,实际场景中当某个结点的复选框被选中时,它的所有子结点也应该同时被选中。

2025-02-09 14:08:53 918

原创 VS2019 +osg3.6.5+ earth3.2+qt5.14.2+osgQt 编译教程

用vs新建工程,稍后会在写一篇博客上分享四、结语至此,所有的编译就均已完成。

2025-02-09 13:48:18 515

原创 06_qt基础开发的常见面试题和解答

示例回答:在之前的项目中,我使用过QT的核心模块,包括QWidget、QApplication、QMainWindow等,用于创建和管理程序的窗口和事件循环。此外,我还使用过QT的网络模块、数据库模块、多线程模块等,以满足项目的具体需求。例如,在一个按钮被点击时,按钮会发出clicked()信号,我们可以将这个信号连接到一个槽函数中,槽函数会在点击事件发生时执行相应的逻辑操作。为了确保程序在不同平台上正常运行,可以使用QT提供的条件编译指令和预定义宏,根据不同平台的特性进行适配和兼容性处理。

2023-06-20 14:56:03 1215

原创 Linux+QT运行程序找不到.so文件的两种解决方法

按i进入编辑,在最后一行加上 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/work/lib,修改完成后点击esc退出编辑,在点击shift+冒号,wq保存并退出。1.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (这里使用命令直接修改LD_LIBRARY_PATH的值)2.vim ~/.bash_profile或vim ~/.bashrc,修改这其中一个文件,【此时可以运行起来主程序】,

2023-06-20 10:51:08 2574

原创 05_Qt信号和槽机制详解

信号是一种特殊类型的函数,它的声明和普通函数类似,但使用 signals 关键字。上面的代码定义了一个名为 mySignal 的信号,它接收一个 int 类型的参数。槽是一种接受信号的函数,它与普通函数的区别在于它可以被连接到信号并在信号触发时自动调用。上面的代码定义了一个名为 mySlot 的槽,它接收一个 int 类型的参数。

2023-06-13 10:38:49 229

原创 04-Linux QT-QFileDialog禁用或者隐藏上一级目录按钮

在这个自定义的 QFileDialog 类中,我们重新实现了 createButtons() 方法。这个方法返回 QDialogButtonBox 对象,可以在这个对象上找到上一级目录按钮并将其禁用和隐藏。要禁用或隐藏 QFileDialog 的上一级目录按钮,可以通过重写 QFileDialog 的 createButtons() 方法来实现。linux 有root权限,为了不让用户到上一级目录删除文件。

2023-06-11 16:48:45 503

原创 03_QT 基础之 QPushButton基本用法

QPushButton 是 Qt 框架中的一个重要控件,它可以创建一个按钮,用户点击该按钮时可以执行所需的操作。在本篇技术博客中,我们将讨论 QPushButton 的用法以及如何使用它来创建一些常见的功能。创建QPushButton首先,我们需要添加一个 QPushButton 控件到我们的窗体中。

2023-06-11 16:35:21 1189

原创 02_QT操作数据库-sqlite

02_QT操作数据库-sqlite

2023-03-03 17:19:15 271

原创 QT-QChart-实现折线图

QChart-实现折线图

2023-03-02 18:10:50 572

原创 FFMPEG 对MP4视频解码转成YUV格式文件,Y格式文件,U格式文件,V格式文件的详细流程

1 视频解码视频解码是将压缩后的视频(压缩格式如H264)通过对应解码算法还原为YUV视频流的过程;在计算机看来,首先输入一段01串(压缩的视频),然后进行大量的浮点运算,最后再输出更长的一段01串(还原的非压缩视频)。计算机内部可以进行浮点数计算的部件是CPU,目前市场上涌现了一批GPU和类GPU芯片,如Nvidia、海思芯片甚至Intel自家的核显。利用前者进行解码一般称为“软解码”,后者被称为“硬解码”,如果没有特殊指定,FFMPEG是用CPU进行解码的,即软解。源代码// testYuv.c

2021-03-20 17:17:46 2189

原创 vs2017+ffmpeg 环境搭建

1 ffmpege官网下载地址:http://www.ffmpeg.org/download.html点击windows图标1.2这个是最新版本,可以下载shared版本下载完成:解压以后: bin目录包含dll文件,include是头文件,lib是引用库,需要拷贝到新建的工程项目中。2. vs2017新建控制台程序2.1 将上述文件拷贝到工程下面3.1 头文件目录设置3.2 lib库目录设置3.2 附加库依赖项右键项目,属性,连接器,输入,附加依赖项 添加avcod

2021-03-19 23:31:49 810

转载 滴水逆向3期作业——新增一个节

// testt.cpp : Defines the entry point for the console application.//#define _CRT_SECURE_NO_WARNINGS#include "stdafx.h"#include <malloc.h>#include <windows.h>#include <string.h>int Read2file(char* file_path,PVOID* FileBuffer);DWO

2020-06-23 08:27:30 1133

mfc做的仿qq截图源码

mfc做的仿qq截图源码,可以直接引用代码。

2021-03-19

MFC实现鼠标拖动框选功能

MFC实现鼠标拖动框选功能

2021-03-17

MFC中在picture控件上实现截屏。

MFC中在picture控件上实现截屏类似于QQ、WeChat pc的截图功能。

2021-03-17

滴水逆向3期作业Filebuffer-&gt;Imagebuffer-&gt;Newbuffer-&gt;存盘功能C++源码

滴水逆向3期作业——filebuffer->imagebuffer->newbuffer->存盘功能源码,了解对文件的PE头解析等原理等,代码容易理解,注释丰富,是学习PE的好帮手!

2020-06-23

空空如也

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

TA关注的人

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