(二)QT——按钮小程序

目录

前言

按钮小程序

1、步骤

2、代码示例

3、多个按钮

①信号与槽的一对一

②多对一(多个信号连接到同一个槽)

③一对多(一个信号连接到多个槽)

结论


前言


按钮小程序

Qt 按钮程序通常包含 三个核心文件

  • mainwindow.h:主窗口类的声明(定义按钮和槽函数)。
  • mainwindow.cpp:主窗口类的实现(创建按钮并连接信号与槽)。
  • main.cpp:程序入口(运行主窗口)。

在 Qt 中,创建一个简单的按钮小程序(GUI 程序)通常涉及使用 Qt Widgets 库来创建窗口和按钮,并处理按钮的点击事件。以下是一个基础的 Qt 小程序示例,展示如何创建一个带按钮的窗口:

1、步骤

  1. 创建项目:使用 Qt Creator 创建一个 Qt Widgets Application 项目。
  2. 设计界面:在 MainWindow 窗口中添加一个按钮。
  3. 处理事件:连接按钮的点击信号到槽函数,显示消息或者执行其他操作。

2、代码示例

1. mainwindow.ui(界面设计)

  • 打开 Qt Creator 中的 mainwindow.ui 文件,拖拽一个按钮(QPushButton)到窗口中。
2. mainwindow.cpp(功能实现)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 设置按钮文本ui->pushButton->setText("点击我");// 连接按钮点击信号到槽函数connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}MainWindow::~MainWindow()
{delete ui;
}// 按钮点击槽函数
void MainWindow::onButtonClicked()
{// 弹出一个消息框QMessageBox::information(this, "提示", "苦瓜汤补钙!");
}
3. mainwindow.ui(界面设计)

在 Qt Creator 中使用拖放工具添加一个按钮,并确保按钮的 objectNamepushButton,然后连接信号和槽。

4. mainwindow.h(头文件)
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButtonClicked(); // 按钮点击的槽函数private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

解释:

  • UI 文件:通过 Qt Creator 的设计器,我们可以直观地设计界面。按钮被命名为 pushButton,并通过信号与槽机制连接点击事件。
  • 槽函数:当按钮被点击时,onButtonClicked 槽函数会被触发,弹出一个消息框 (QMessageBox::information) 来显示提示信息。

构建与运行:

  1. 在 Qt Creator 中点击 编译 (Ctrl + B),然后点击 运行 (Ctrl + R)。
  2. 当窗口显示时,点击按钮会弹出消息框。

这就是一个简单的 Qt 按钮小程序。你可以根据需要修改按钮的行为和界面元素,Qt 提供了丰富的控件和功能,可以帮助你开发各种应用。


3、多个按钮

如果你的 Qt 小程序包含 多个按钮,你可以使用 多个槽函数 或者 使用 QObject::sender() 识别信号发送者 来动态处理多个按钮的点击事件。

注意:Qt的信号与槽机制,可以实现信号与槽的一对一、多对一和一对多。

①信号与槽的一对一

方法 1:为每个按钮创建独立的槽函数

如果每个按钮有不同的功能,你可以分别为它们创建槽函数。

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButton1Clicked();void onButton2Clicked();void onButton3Clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 设置按钮文本ui->pushButton->setText("按钮 1");ui->pushButton_2->setText("按钮 2");ui->pushButton_3->setText("按钮 3");// 连接信号与槽connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButton1Clicked);connect(ui->pushButton_2, &QPushButton::clicked, this, &MainWindow::onButton2Clicked);connect(ui->pushButton_3, &QPushButton::clicked, this, &MainWindow::onButton3Clicked);
}MainWindow::~MainWindow()
{delete ui;
}// 定义槽函数
void MainWindow::onButton1Clicked()
{QMessageBox::information(this, "提示", "按钮 1 被点击!");
}void MainWindow::onButton2Clicked()
{QMessageBox::information(this, "提示", "按钮 2 被点击!");
}void MainWindow::onButton3Clicked()
{QMessageBox::information(this, "提示", "按钮 3 被点击!");
}

优点: 代码清晰,每个按钮的逻辑独立。
缺点: 如果按钮很多,代码会变得冗余。

方法 2:手动创建按钮

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButton1Clicked();  // 按钮1的槽函数void onButton2Clicked();  // 按钮2的槽函数private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建按钮 1QPushButton *pushButton1 = new QPushButton("按钮 1", this);pushButton1->setGeometry(50, 50, 100, 30);// 创建按钮 2QPushButton *pushButton2 = new QPushButton("按钮 2", this);pushButton2->setGeometry(50, 100, 100, 30);// 连接信号与槽connect(pushButton1, &QPushButton::clicked, this, &MainWindow::onButton1Clicked);connect(pushButton2, &QPushButton::clicked, this, &MainWindow::onButton2Clicked);
}MainWindow::~MainWindow()
{delete ui;
}// 按钮 1 处理函数
void MainWindow::onButton1Clicked()
{qDebug() << "按钮 1 被点击";
}// 按钮 2 处理函数
void MainWindow::onButton2Clicked()
{qDebug() << "按钮 2 被点击";
}
运行步骤
  1. 在 Qt Creator 中创建 Qt Widgets 应用程序
  2. 替换 mainwindow.hmainwindow.cppmain.cpp
  3. 点击 Ctrl + R 运行
  4. 点击按钮,观察 Application Output 窗口:

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QMessageBox>  // 添加 QMessageBox 头文件
#include <QPushButton>  // 添加 QPushButton 头文件QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButton1Clicked();  // 按钮 1 槽函数void onButton2Clicked();  // 按钮 2 槽函数void onButton3Clicked();  // 按钮 3 槽函数private:Ui::MainWindow *ui;QPushButton *pushButton1;QPushButton *pushButton2;QPushButton *pushButton3;
};
#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建按钮 1pushButton1 = new QPushButton("按钮 1", this);pushButton1->setGeometry(50, 50, 150, 40);// 创建按钮 2pushButton2 = new QPushButton("按钮 2", this);pushButton2->setGeometry(50, 120, 150, 40);// 创建按钮 3pushButton3 = new QPushButton("按钮 3", this);pushButton3->setGeometry(50, 190, 150, 40);// 连接按钮信号到槽函数connect(pushButton1, &QPushButton::clicked, this, &MainWindow::onButton1Clicked);connect(pushButton2, &QPushButton::clicked, this, &MainWindow::onButton2Clicked);connect(pushButton3, &QPushButton::clicked, this, &MainWindow::onButton3Clicked);
}MainWindow::~MainWindow()
{delete ui;
}// 按钮 1 槽函数
void MainWindow::onButton1Clicked()
{QMessageBox::information(this, "提示", "按钮 1 被点击!");
}// 按钮 2 槽函数
void MainWindow::onButton2Clicked()
{QMessageBox::information(this, "提示", "按钮 2 被点击!");
}// 按钮 3 槽函数
void MainWindow::onButton3Clicked()
{QMessageBox::information(this, "提示", "按钮 3 被点击!");
}

②多对一(多个信号连接到同一个槽)

场景:多个按钮触发同一个槽函数
多个 QPushButton 连接到同一个 clicked() 槽函数,槽函数可以区分是哪个按钮触发的。

QtButtonApp/
│── main.cpp
│── mainwindow.h
│── mainwindow.cpp
│── mainwindow.ui  (如果使用 UI 设计)
│── QtButtonApp.pro

  1. 使用 QSignalMapper(Qt5 可用)或 lambda 表达式(推荐 Qt6)
    • 让多个按钮的 clicked() 信号映射到同一个槽函数,并传递不同的参数
  2. sender() 自动识别哪个按钮触发
    • 通过 QObject::sender() 获取信号来源(触发的按钮)。
    • 获取按钮 text() 或者 objectName() 来区分。

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QMap>  // 用于存储按钮QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onAnyButtonClicked();  // ✅ 多对一的槽函数private:Ui::MainWindow *ui;QMap<QPushButton*, QString> buttonMap;  // 按钮映射(用于存储按钮和它们的名称)
};
#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// ✅ 统一创建多个按钮,并存入 QMap 进行管理QStringList buttonNames = {"按钮 1", "按钮 2", "按钮 3"};int y = 50;for (const QString &name : buttonNames) {QPushButton *button = new QPushButton(name, this);button->setGeometry(50, y, 100, 40);  // 设置按钮位置y += 50;buttonMap[button] = name;  // 记录按钮和它的名称// ✅ 连接所有按钮到**同一个槽函数**(多对一)connect(button, &QPushButton::clicked, this, &MainWindow::onAnyButtonClicked);}
}MainWindow::~MainWindow()
{delete ui;
}// ✅ **多对一的槽函数**
void MainWindow::onAnyButtonClicked()
{QPushButton *button = qobject_cast<QPushButton*>(sender());  // 获取触发的按钮if (button && buttonMap.contains(button)){QMessageBox::information(this, "按钮点击", buttonMap[button] + " kgtbg!");}
}

③一对多(一个信号连接到多个槽)

"一对多" 是指 一个信号 连接到多个 槽函数,而不是多个信号连接到一个槽函数。在 Qt 中可以轻松实现这种一对多的机制

  1. 创建一个信号,并连接到多个槽函数
  2. 每个槽函数根据需要处理这个信号。

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onSlot1();void onSlot2();void onSlot3();private:Ui::MainWindow *ui;QPushButton *button;
};
#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建按钮button = new QPushButton("点击按钮", this);button->setGeometry(50, 50, 120, 40);// 直接连接按钮的 clicked 信号到多个槽函数connect(button, &QPushButton::clicked, this, &MainWindow::onSlot1);connect(button, &QPushButton::clicked, this, &MainWindow::onSlot2);connect(button, &QPushButton::clicked, this, &MainWindow::onSlot3);
}MainWindow::~MainWindow()
{delete ui;
}// 槽1
void MainWindow::onSlot1()
{QMessageBox::information(this, "槽1", "槽1 被触发!");
}// 槽2
void MainWindow::onSlot2()
{QMessageBox::information(this, "槽2", "槽2 被触发!");
}// 槽3
void MainWindow::onSlot3()
{QMessageBox::information(this, "槽3", "槽3 被触发!");
}

如果你想 点击按钮后一次性显示多个信息框,可以用 QMessageBox::information() 直接串联多个调用,也可以用 QMessageBoxexec() 方法让多个消息框同时显示。

方式 1:使用 QMessageBox::information() 串联

一次性弹出多个消息框(但用户需要手动关闭每个消息框)

void MainWindow::onButtonClicked()
{QMessageBox::information(this, "提示", "槽1 被触发!");QMessageBox::information(this, "提示", "槽2 被触发!");QMessageBox::information(this, "提示", "槽3 被触发!");
}

这种方式需要逐个点击“确定”关闭消息框,才能显示下一个。

方式 2:使用 QMessageBox 并行显示多个对话框

一次性显示多个信息框,不用逐个关闭

void MainWindow::onButtonClicked()
{QMessageBox *msgBox1 = new QMessageBox(QMessageBox::Information, "提示", "槽1 被触发!", QMessageBox::Ok, this);QMessageBox *msgBox2 = new QMessageBox(QMessageBox::Information, "提示", "槽2 被触发!", QMessageBox::Ok, this);QMessageBox *msgBox3 = new QMessageBox(QMessageBox::Information, "提示", "槽3 被触发!", QMessageBox::Ok, this);msgBox1->show();msgBox2->show();msgBox3->show();
}

这样可以同时显示多个消息框,用户可以自由关闭,不需要等待一个一个弹出。

方式 3:在一个窗口显示所有信息

如果你不想弹出多个窗口,而是在一个窗口内显示所有信息

void MainWindow::onButtonClicked()
{QString message = "槽1 被触发!\n槽2 被触发!\n槽3 被触发!";QMessageBox::information(this, "提示", message);
}

下面是一个 完整的 Qt 按钮小程序,包含 一个按钮,点击后会 一次性显示多个信息(方式 3)。

  • 创建 Qt 项目(Qt Widgets Application)。
  • 复制粘贴 mainwindow.hmainwindow.cppmain.cpp 代码。
  • 编译运行,点击按钮即可看到 一个弹窗 显示多个信息。

修改 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButtonClicked(); // 按钮点击槽函数private:Ui::MainWindow *ui;QPushButton *button; // 按钮指针
};
#endif // MAINWINDOW_H

修改 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建按钮button = new QPushButton("点击我", this);button->setGeometry(100, 100, 100, 50); // 设定按钮位置// 连接信号和槽connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}MainWindow::~MainWindow()
{delete ui;
}// 按钮点击事件
void MainWindow::onButtonClicked()
{// 方式 3:一次性显示多个信息QString message = "槽1 被触发!\n槽2 被触发!\n槽3 被触发!";QMessageBox::information(this, "提示", message);
}

这样不会弹出多个窗口,体验更好!


结论

Qt 按钮程序主要使用 QPushButton 和信号槽机制
支持一对一、多对一和一对多的信号槽连接
可以创建多个按钮,并让它们共享同一个槽
可以让一个按钮触发多个槽,执行多个操作

🚀 Qt 的按钮程序灵活且强大,适用于多种 GUI 应用场景!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10472.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目&#xff0c;那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…

C# Winform制作一个登录系统

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 登录 {p…

第11章:根据 ShuffleNet V2 迁移学习医学图像分类任务:甲状腺结节检测

目录 1. Shufflenet V2 2. 甲状腺结节检测 2.1 数据集 2.2 训练参数 2.3 训练结果 2.4 可视化网页推理 3. 下载 1. Shufflenet V2 shufflenet v2 论文中提出衡量轻量级网络的性能不能仅仅依靠FLOPs计算量&#xff0c;还应该多方面的考虑&#xff0c;例如MAC(memory acc…

AJAX案例——图片上传个人信息操作

黑马程序员视频地址&#xff1a; AJAX-Day02-11.图片上传https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p26 图片上传 <!-- 文件选择元素 --><input type"file"…

AI DeepSeek-R1 Windos 10 环境搭建

1、安装&#xff1a; 下载 Python |Python.org CUDA Drivers for MAC Archive | NVIDIA pip 和virtualenv Download Ollama on Windows 如下图 2、下载模型 deepseek-r1 ollama run deepseek-r1 或者可以ollama run deepseek-r1:8b 或 3、安装一个可视化对话Chatbox 下载 …

【AI绘画】MidJourney关键词{Prompt}全面整理

AI绘画整理&#xff0c;MidJourney关键词。喜欢AI绘画的朋友必备&#xff0c;建议收藏&#xff0c;后面用到时供查阅使用。 1、光线与影子篇 中 英 闪耀的霓虹灯 shimmeringneon lights 黑暗中的影子 shadows in the dark 照亮城市的月光 moonlightilluminatingthe cit…

剑指offer 数组 持续更新中...

文章目录 1. 数组中重复的数字1.1 问题描述1.2 方法1: 排序1.3 方法2: 哈希表1.4 方法3: 原地交换 2. 寻找重复数2.1 问题描述2.2 方案1&#xff0c;使用辅助数组2.3 方案2&#xff0c;使用二分 3. 二维数组的查找3.2 方案1&#xff0c;贪心 4. 合并两个有序数组4.1 问题描述4.…

SQLAlchemy 2.0的简单使用教程

SQLAlchemy 2.0相比1.x进行了很大的更新&#xff0c;目前网上的教程不多&#xff0c;以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎&#xff0c;链接到mysql engine crea…

nodejs:express + js-mdict 网页查询英汉词典

向 DeepSeek R1 提问&#xff1a; 我想写一个Web 前端网页&#xff0c;后台用 nodejs js-mdict, 实现在线查询英语单词 1. 项目结构 首先&#xff0c;创建一个项目目录&#xff0c;结构如下&#xff1a; mydict-app/ ├── public/ │ ├── index.html │ ├── st…

23.Word:小王-制作公司战略规划文档❗【5】

目录 NO1.2.3.4 NO5.6​ NO7.8.9​ NO10.11​ NO12​ NO13.14 NO1.2.3.4 布局→页面设置对话框→纸张&#xff1a;纸张大小&#xff1a;宽度/高度→页边距&#xff1a;上下左右→版式&#xff1a;页眉页脚→文档网格&#xff1a;勾选只指定行网格✔→ 每页&#xff1a;…

联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸

现在某品牌的13/14代&#xff08;CPU是13或14开头&#xff09;CPU缩肛有设计质量问题、CPU容易氧化易损坏易蓝屏等问题&#xff0c;现在大家买笔记本或台式电脑请不要考虑这两代CPU&#xff0c;或考虑AMD的CPU。 晚上23点10分前下单&#xff0c;第二天上午显示屏送到&#xff…

从0到1:C++ 开启游戏开发奇幻之旅(二)

目录 游戏开发核心组件设计 游戏循环 游戏对象管理 碰撞检测 人工智能&#xff08;AI&#xff09; 与物理引擎 人工智能 物理引擎 性能优化技巧 内存管理优化 多线程处理 实战案例&#xff1a;开发一个简单的 2D 射击游戏 项目结构设计 代码实现 总结与展望 游戏…

QT简单实现验证码(字符)

0&#xff09; 运行结果 1&#xff09; 生成随机字符串 Qt主要通过QRandomGenerator类来生成随机数。在此之前的版本中&#xff0c;qrand()函数也常被使用&#xff0c;但从Qt 5.10起&#xff0c;推荐使用更现代化的QRandomGenerator类。 在头文件添加void generateRandomNumb…

C++,STL 命名空间:理解 std 的作用、规范与陷阱

文章目录 引言一、为什么需要 std 命名空间&#xff1f;二、std 命名空间的组成三、使用 std 命名空间的正确姿势1. 显式作用域限定2. 谨慎使用 using 声明3. 头文件中禁止 using namespace std 四、常见陷阱与解决方案陷阱 1&#xff1a;与第三方库命名冲突陷阱 2&#xff1a;…

UE5 GAS RPG Character Classes

在正常的游戏中&#xff0c;我们应该考虑如何去初始化角色属性&#xff0c;并且要给角色分好类型。比如&#xff0c;在我们游戏中&#xff0c;我们如何去初始化小兵的属性&#xff0c;并且还要实现小兵随着等级的增长而增加属性。而且就是小兵也有类型的区分&#xff0c;比如我…

RRT_STAR路径规划代码

这是一段使用MATLAB编写的代码&#xff0c;实现了一个基于RRT*&#xff08;Rapidly-exploring Random Trees Star&#xff09;算法的路径规划。RRT*是一种用于在配置空间中搜索路径的采样算法&#xff0c;常用于机器人路径规划等领域。以下是代码的主要功能和结构&#xff1a; …

常见“栈“相关题目

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; 优选算法专题 目录 1047.删除字符串中的所有相邻重复项 844.比较含退格的字符串 227.基本计算器 II 394.字符串解码 946.验证栈序列 104…

窥探目标文件

文章目录 源文件如何变成可执行文件编译链接目标文件格式ELF文件格式节表重定位表(.rela)符号表(.symtab)符号(链接的接口)强符号与弱符号强引用与弱引用符号表表项符号类型和绑定信息符号所在段其他节源文件如何变成可执行文件 CPU只能执行二进制指令,无法执行用户直接编写的…