当前位置: 首页 > news >正文

【C++QT】Buttons 按钮控件详解

文章目录

  • 一、QPushButton 基础按钮控件
  • 二、QToolButton 轻量工具按钮控件
  • 三、QRadioButton 互斥选择控件
  • 四、QCheckBox 状态选择控件
  • 五、QCommandLinkButton 引导式按钮控件
  • 六、QDialogButtonBox 对话框按钮布局控件
  • 七、实践与选型建议
  • 八、总结
    • 如果这篇文章对你有所帮助,渴望获得你的一个点赞!

在 Qt 的 QtWidgets 模块中,Buttons 组控件是用户交互的核心组件,涵盖触发操作、状态选择、对话框按钮布局等功能。本文包含 QPushButton、QToolButton、QCheckBox、QRadioButton、QCommandLinkButton、QDialogButtonBox 的详细用法、技巧及详细示例。
在这里插入图片描述

一、QPushButton 基础按钮控件

1. 功能与特性

  • 核心作用:触发单次操作(如 “确定” “取消”),支持文本、图标、状态切换(可勾选按钮)。
  • 继承关系:继承自 QAbstractButton,支持 clickablechecked 等状态,适用于提交、取消、功能切换等场景。

2. 常用属性

属性 / 方法说明
setText(const QString &)设置按钮文本
setIcon(const QIcon &)设置图标(支持 QIcon 加载本地图片或 Font Awesome 图标)
setIconSize(QSize)图标大小(默认与文本高度适配)
setCheckable(bool)设置为可勾选按钮(切换状态,如 “选中 / 未选中”)
isChecked()获取勾选状态(仅当 setCheckable(true) 时有效)
setShortcut(QKeySequence)设置快捷键(如 Ctrl+S

3. 信号与槽

  • clicked():点击按钮时触发(无论是否勾选)。
  • toggled(bool checked):可勾选按钮状态变化时触发(checked 为当前状态)。

4. 使用技巧

(1) 图标按钮(带文本和图标)

QPushButton *saveBtn = new QPushButton("保存", this);
saveBtn->setIcon(QIcon(":/icons/save.png"));        // 加载资源图标
saveBtn->setIconSize(QSize(24, 24));                // 图标大小
saveBtn->setStyleSheet("padding-left: 30px;");      // 文本左移留出图标空间

(2) 可勾选按钮(切换功能状态)

QPushButton *toggleButton = new QPushButton("切换模式", this);
toggleButton->setCheckable(true);
connect(toggleButton, &QPushButton::toggled, [=](bool on) {if (on) {// 开启模式setWindowTitle("高级模式");} else {// 关闭模式setWindowTitle("普通模式");}
});

(3) 快捷键与自动重复

button->setShortcut(QKeySequence::Save); // 绑定 Ctrl+S 快捷键
button->setAutoRepeat(true);             // 长按自动重复触发 clicked 信号
button->setAutoRepeatInterval(500);      // 重复间隔(毫秒)

(4) 自定义样式(QSS)

// 绿色圆角按钮,悬停时加深
button->setStyleSheet(R"(QPushButton {background-color: #4CAF50;border: 2px solid #45a049;border-radius: 10px;color: white;padding: 10px 20px;}QPushButton:hover {background-color: #45a049;}QPushButton:checked {background-color: #2e8b57; /* 勾选时颜色 */}
)");

二、QToolButton 轻量工具按钮控件

1. 功能与特性

  • 设计目标:用于工具栏(QToolBar),外观更简洁,支持弹出菜单或下拉选项。
  • 特点:支持 Qt::ToolButtonStyle 控制显示方式(图标、文本、图文组合),适合高频操作快捷入口。

2. 常用属性

属性 / 方法说明
setToolButtonStyle(Qt::ToolButtonStyle style)设置显示样式(如 Qt::ToolButtonIconOnlyQt::ToolButtonTextBesideIcon
setPopupMode(QToolButton::PopupMode mode)设置弹出模式(如 DelayedPopup 延迟显示菜单)
setMenu(QMenu *menu)关联下拉菜单(点击按钮或箭头触发)
setArrowType(Qt::ArrowType arrowType)设置下拉箭头方向(用于菜单按钮)

3. 使用场景

(1) 带下拉菜单的工具按钮

QToolButton *formatButton = new QToolButton(this);
formatButton->setIcon(QIcon(":/icons/format.png"));QMenu *formatMenu = new QMenu(this);
formatMenu->addAction("加粗", [=]() { /* 加粗逻辑 */ });
formatMenu->addAction("斜体", [=]() { /* 斜体逻辑 */ });
formatButton->setMenu(formatMenu);
formatButton->setPopupMode(QToolButton::InstantPopup); // 点击直接弹出菜单

(2) 文本与图标组合

button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // 图标在上,文本在下
button->setText("保存");
button->setIconSize(QSize(32, 32));

三、QRadioButton 互斥选择控件

1. 功能与特性

  • 核心作用:单选按钮,同一组内互斥(仅一个选中),通过 QButtonGroup 分组管理,适用于排他性选项(如性别、语言选择)。
  • 特点:自动互斥,无需手动处理状态切换。

2. 常用属性

属性 / 方法说明
setChecked(bool)设置选中状态
isChecked()获取选中状态

3. 分组管理:QButtonGroup

QButtonGroup *group = new QButtonGroup(this);
QRadioButton *radio1 = new QRadioButton("选项1", this);
QRadioButton *radio2 = new QRadioButton("选项2", this);
group->addButton(radio1, 1); // 添加按钮并分配 ID
group->addButton(radio2, 2);connect(group, &QButtonGroup::buttonToggled, [=](QAbstractButton *button, bool checked) {if (checked) {qDebug() << "选中的按钮 ID:" << group->id(button);}
});

4. 使用技巧

(1) 布局内分组

  • 将单选按钮放入QGroupBox内,自动形成视觉分组,无需额外代码:

    QGroupBox *groupBox = new QGroupBox("性别", this);
    QRadioButton *male = new QRadioButton("男", groupBox);
    QRadioButton *female = new QRadioButton("女", groupBox);
    QVBoxLayout *layout = new QVBoxLayout(groupBox);
    layout->addWidget(male);
    layout->addWidget(female);
    

(2) 键盘导航

  • 通过setShortcut()为单选按钮设置快捷键(如Alt+M选中 “男”):

    male->setShortcut(QKeySequence("Alt+M"));
    

四、QCheckBox 状态选择控件

1. 功能与特性

  • 核心作用:独立或分组的多选状态切换,支持二态(勾选 / 未勾选)或三态(部分选中),适用于配置选项、功能开关等。

2. 常用属性

属性 / 方法说明
setChecked(bool)设置勾选状态
setTristate(bool)启用三态(中间状态:Qt::PartiallyChecked
checkState()获取状态(Qt::Checked/Qt::Unchecked/Qt::PartiallyChecked
setTextFormat(Qt::TextFormat format)设置文本格式(支持富文本,如 <b>加粗</b>

3. 信号与槽

  • stateChanged(int state):状态变化时触发(stateQt::CheckState 枚举值)。

4. 使用技巧

(1) 三态勾选(部分选中)

QCheckBox *folderCheck = new QCheckBox("选中子文件夹", this);
folderCheck->setTristate(true);
folderCheck->setCheckState(Qt::PartiallyChecked); // 初始为部分选中
connect(folderCheck, &QCheckBox::stateChanged, [=](int state) {if (state == Qt::PartiallyChecked) {// 处理部分选中逻辑(如级联选择)}
});

(2) 富文本标签

checkBox->setText("<font color='blue'>记住密码</font>"); // 设置蓝色文本
checkBox->setToolTip("勾选后自动保存密码"); // 提示信息

五、QCommandLinkButton 引导式按钮控件

1. 功能与特性

  • 设计目标:Windows 风格按钮,包含主文本和说明文本,左侧可带图标,用于引导用户执行次级操作(如 “查看高级设置”)。

2. 常用属性与方法

属性 / 方法说明
setText(const QString &)设置主文本(较大字体)
setDescription(const QString &)设置说明文本(较小字体,位于主文本下方)
setIcon(const QIcon &)设置左侧图标

3. 使用示例

QCommandLinkButton *linkBtn = new QCommandLinkButton(this);
linkBtn->setText("管理账户");
linkBtn->setDescription("点击以修改个人信息和安全设置");
linkBtn->setIcon(QIcon(":/icons/account.png"));connect(linkBtn, &QCommandLinkButton::clicked, [=]() {AccountSettingsDialog *dialog = new AccountSettingsDialog(this);dialog->show();
});

六、QDialogButtonBox 对话框按钮布局控件

1. 功能与特性

  • 核心作用:标准化对话框按钮布局(如 “确定” “取消” “应用”),自动管理按钮排列和信号,支持标准按钮和自定义按钮。
  • 优势:统一对话框按钮风格,自动适配系统语言(如 “OK” 翻译为 “确定”),简化信号连接(直接关联对话框的 accept()/reject())。

2. 常用属性与方法

属性 / 方法说明
构造函数QDialogButtonBox(QDialogButtonBox::StandardButtons buttons, Qt::Orientation orientation, QWidget *parent = nullptr)
addButton(QPushButton *button, QDialogButtonBox::ButtonRole role)添加自定义按钮(roleAcceptRoleRejectRole
button(QDialogButtonBox::StandardButton button)获取标准按钮(如 OkCancel

3. 标准按钮枚举值

枚举值对应按钮文本(中文系统)角色(Role)
QDialogButtonBox::Ok确定AcceptRole
QDialogButtonBox::Cancel取消RejectRole
QDialogButtonBox::Apply应用ApplyRole
QDialogButtonBox::YesAcceptRole
QDialogButtonBox::NoRejectRole

4. 使用示例(对话框集成)

class MyDialog : public QDialog {Q_OBJECTpublic:MyDialog(QWidget *parent = nullptr) : QDialog(parent) {// 1. 创建按钮盒(水平布局,包含 Ok 和 Cancel)QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,Qt::Horizontal,this);// 2. 连接按钮信号到对话框操作(自动调用 accept()/reject())connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);// 3. 添加自定义按钮(如“帮助”)QPushButton *helpBtn = buttonBox->addButton("帮助", QDialogButtonBox::HelpRole);connect(helpBtn, &QPushButton::clicked, [=]() { showHelp(); });// 4. 布局QVBoxLayout *layout = new QVBoxLayout(this);layout->addWidget(new QLabel("是否保存更改?"));layout->addWidget(buttonBox);}
};

5. 高级技巧

  • 垂直布局按钮:

    buttonBox->setOrientation(Qt::Vertical); // 按钮垂直排列
    
  • 禁用特定按钮:

    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); // 禁用“确定”按钮
    

七、实践与选型建议

1. 控件选型对比

控件类型适用场景核心特性典型案例
QPushButton单次操作触发、状态切换文本 / 图标支持、可勾选状态提交按钮、模式切换按钮
QToolButton工具栏快捷操作、下拉菜单简洁图标设计、弹出模式支持工具栏中的格式设置按钮
QCheckBox多选或三态选择独立状态、级联选择支持配置选项(如 “记住密码”)
QRadioButton互斥选项选择自动分组互斥、单选状态性别选择、语言切换
QCommandLinkButton引导式操作入口主文本 + 说明文本、图标左侧显示高级功能入口(如 “查看详情”)
QDialogButtonBox对话框按钮布局标准化按钮、自动信号连接确认对话框(确定 / 取消)

2. 样式与可用性优化

  • 统一风格:通过 QSS 定义按钮样式(如圆角、配色),确保同一场景下按钮外观一致。
  • 快捷键与提示:为常用按钮设置 setShortcut()setToolTip(),提升操作效率。
  • 响应式布局:在 QDialogButtonBox 中使用 horizontal 布局(默认)适配小屏幕,复杂场景可切换为 vertical

3. 内存与线程安全

  • 父控件管理:创建按钮时指定父控件(如 new QPushButton("OK", this)),自动释放内存。
  • 跨线程通信:通过 Qt::QueuedConnection 连接按钮信号,避免线程安全问题。

八、总结

Buttons 组控件是 Qt 界面交互的基础,合理选择和组合使用可显著提升用户体验:

  • QPushButton 用于通用操作触发,支持丰富的自定义;

  • QDialogButtonBox 是对话框按钮的最佳实践,简化标准化按钮的管理;

  • QCheckBox/QRadioButton 专注于状态选择,配合 QButtonGroup 实现高效分组;

  • QToolButton/QCommandLinkButton 则在特定场景(工具栏、引导操作)中发挥优势。
    通过掌握各控件的特性和使用技巧,结合 Qt Designer 和 QSS 样式,可快速构建专业、易用的交互界面。

  • 官方文档链接:Button Controls


如果这篇文章对你有所帮助,渴望获得你的一个点赞!

在这里插入图片描述

相关文章:

【C++QT】Buttons 按钮控件详解

文章目录 一、QPushButton 基础按钮控件二、QToolButton 轻量工具按钮控件三、QRadioButton 互斥选择控件四、QCheckBox 状态选择控件五、QCommandLinkButton 引导式按钮控件六、QDialogButtonBox 对话框按钮布局控件七、实践与选型建议八、总结如果这篇文章对你有所帮助&#…...

威雅利电子|业界领先的高隔离度用于5G基站的吸收式SPDT开关“NT1819“

业界领先的高隔离度 用于5G基站的吸收式SPDT开关"NT1819" 为了实现智能社会&#xff0c;已经启动了5G服务。这样&#xff0c;高速、低延迟、大容量的数据通信成为可能&#xff0c;也给我们的生活和工业发展带来了巨大的变化。 在5G基站有很多天线&#xff0c;每个天…...

【DNS】BIND 9的配置

该文档围绕BIND 9的配置与区域文件展开&#xff0c;介绍了BIND 9配置文件及区域文件的相关知识&#xff0c;以及权威名称服务器、解析器的相关内容&#xff0c;还阐述了负载均衡和区域文件的详细知识&#xff0c;具体如下&#xff1a; 基础配置文件&#xff1a; named.conf&am…...

高可靠性厚铜板制造的关键设备与工艺投入

随着科技的不断发展&#xff0c;电子设备越来越普及&#xff0c;对电路板的需求也越来越大。厚铜板电路板作为一种高性能、高可靠性的电路板&#xff0c;受到了广泛的关注和应用。那么&#xff0c;作为一家厚铜板电路板供应商&#xff0c;如何投入线路板生产呢&#xff1f;本文…...

m365是什么,和o365的区别

M365&#xff08;Microsoft 365&#xff09;是微软推出的基于云的办公套件&#xff0c;包含多种生产力工具&#xff0c;旨在帮助个人和企业提高工作效率。它包括经典的办公软件&#xff0c;如Word、Excel、PowerPoint、Outlook等&#xff0c;还提供协作和云存储服务&#xff0c…...

【Pandas】pandas DataFrame dot

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象&#xff08;如 DataFrame、Series 或标量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

技术服务业-首套运营商网络路由5G SA测试专网在深光搭建完成并对外提供服务

深光为了更好的服务蜂窝无线技术及运营商测试认证相关业务&#xff0c;搭建了技术服务业少有的5G测试专网&#xff0c;可独立灵活配置、完整端到端5G&#xff08;含RedCap、LAN&#xff09;的网络架构。 通过走真正运营商网络路由的方式&#xff0c;使终端设备的测试和运营商网…...

GrassRouter 小草MULE多5G多链路聚合通信路由设备在应急场景的聚合效率测试报告及解决方案

在应急通信场景中&#xff0c;快速、稳定、高效的通信链路是保障救援工作顺利开展的关键。MULE&#xff08;Multi-Link Unified Link Enhancement&#xff09;多链路聚合路由通信设备作为一种新型的通信技术解决方案&#xff0c;通过聚合多条通信链路&#xff08;如4G/5G、卫星…...

解释器模式:自定义语言解析与执行的设计模式

解释器模式&#xff1a;自定义语言解析与执行的设计模式 一、模式核心&#xff1a;定义语言文法并实现解释器处理句子 在软件开发中&#xff0c;当需要处理特定领域的语言&#xff08;如数学表达式、正则表达式、自定义配置语言&#xff09;时&#xff0c;可以通过解释器模式…...

第十二章 Python语言-大数据分析PySpark(终)

目录 一. PySpark前言介绍 二.基础准备 三.数据输入 四.数据计算 1.数据计算-map方法 2.数据计算-flatMap算子 3.数据计算-reduceByKey方法 4.数据计算-filter方法 5.数据计算-distinct方法 6.数据计算-sortBy方法 五.数据输出 1.输出Python对象 &#xff08;1&am…...

Oracle数据库巡检脚本

1.查询实例信息 SELECT INST_ID, INSTANCE_NAME, TO_CHAR(STARTUP_TIME, YYYY-MM-DD HH24:MI:SS) AS STARTUP_TIME FROM GV$INSTANCE ORDER BY INST_ID; 2.查看是否归档 archive log list 3.查看数据库参数 SELECT NAME , TYPE , VALUE FROM V$PARAMETER ORDER BY NAME; 4.…...

示例:Spring JDBC编程式事务

以下是一个完整的 Spring JDBC 编程式事务示例&#xff0c;包含批量插入、事务管理、XML 配置和单元测试&#xff1a; 1. 项目依赖&#xff08;pom.xml&#xff09; <dependencies><!-- Spring JDBC --><dependency><groupId>org.springframework<…...

Happens-Before 原则

Happens-Before 规则 Happens-Before是JMM的核心概念之一&#xff0c;是一种可见性模型&#xff0c;保障多线程环境下前一个操作的结果相对于后续操作是可见的。 程序顺序性&#xff0c;同一线程中前面代码的操作happens-before后续的任意操作。volatile变量规则&#xff0c;…...

怎样通过互联网访问内网 SVN (版本管理工具)提交代码更新?

你有没有遇到过这种情况&#xff1a;在公司或者家里搭了个 SVN 服务器&#xff08;用来存代码的&#xff09;&#xff0c;但出门在外想提交代码时&#xff0c;发现连不上&#xff1f; 这是因为 SVN 通常跑在内网&#xff0c;外网直接访问不了。 这时候就需要 “内网穿透” ——…...

Verilog 语法 (一)

Verilog 是硬件描述语言&#xff0c;在编译下载到 FPGA 之后&#xff0c; FPGA 会生成电路&#xff0c;所以 Verilog 全部是并行处理与运行的&#xff1b;C 语言是软件语言&#xff0c;编译下载到单片机 /CPU 之后&#xff0c;还是软件指令&#xff0c;而不会根据你的代…...

针对 Spring Boot 应用中常见的查询场景 (例如:分页查询、关联查询、聚合查询) 如何进行 SQL 优化?

通用优化原则&#xff08;适用于所有场景&#xff09;&#xff1a; 索引是基础: 确保 WHERE、JOIN、ORDER BY、GROUP BY 涉及的关键列都有合适的索引&#xff08;单列或联合索引&#xff09;。避免 SELECT *: 只查询业务需要的列&#xff0c;减少数据传输量和内存消耗。覆盖索…...

shadcn/radix-ui的tooltip高度定制arrow位置

尝试了半天&#xff0c;后来发现&#xff0c;不支持。。。。。就是不支持 那箭头只能居中 改side和align都没用&#xff0c;下面有在线实例 https://codesandbox.io/p/sandbox/radix-ui-slider-forked-zgn7hj?file%2Fsrc%2FApp.tsx%3A69%2C21 但是呢&#xff0c; 第一如果…...

ROS-真机向虚拟机器人映射

问题描述 ROS里的虚拟机械臂可以实现和真实机械臂的位置同步&#xff0c;真实机械臂如何动&#xff0c;ROS里的虚拟机械臂就如何动 效果 步骤 确保库卡机械臂端安装有EthernetKRL辅助软件和KUKAVARPROXY 6.1.101&#xff08;它是一个 TCP/IP 服务器 &#xff0c;可通过网络实…...

ap无法上线问题定位(交换机发包没有剥掉pvid tag)

一中学&#xff0c;新开的40台appoe交换机核心交换机旁挂ac出口路由的组网&#xff0c;反馈ap无法上线&#xff0c;让协助解决。 组网如下&#xff1a; 排查过程&#xff1a; 检查ac的配置&#xff0c;没有发现问题 发现配置没有问题&#xff0c;vlan1000配置子接口&#xff…...

Linux基础

03.Linux基础 了解VMware备份的两种方式 了解Linux系统文件系统 掌握Linux基础命令 备份操作系统 为什么要备份系统&#xff1f; 数据安全&#xff1a;防止因硬件故障、软件错误等原因导致的数据丢失。 系统恢复&#xff1a;快速恢复系统至正常状态&#xff0c;减少停机时…...

python函数与模块

目录 一&#xff1a;函数 1.无参函数 2.带参数函数 2.函数中变量中的作用域 4.内建函数 二&#xff1a;模块与包 1.模块 &#xff08;1&#xff09;模块定义 &#xff08;2&#xff09;模块导入 2.包 &#xff08;1&#xff09;包的使用 &#xff08;2&#xff09;_…...

线上助农产品商城小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的线上助农产品商城小程序源码&#xff0c;旨在为农产品销售搭建一个高效、便捷的线上平台&#xff0c;助力乡村振兴。 一、技术架构 该小程序源码采用了ThinkPHP作为后端框架&#xff0c;FastAdmin作为快速开发框架&#xff0c;UniApp作为跨…...

个人博客后台管理开发日志

技术栈&#xff1a;Vue3 Ts node.js mySQL pinia axios 3月14日 一、数据表梳理 用户&#xff08;user&#xff09; ID名字邮箱密码 头像 地址 创建 时间 总览有本地文件、博客文章、摄影图库、随笔随记&#xff0c;这些板块也有对应的分类&#xff0c;我们要把这些分类…...

[论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models REPLUG: Retrieval-Augmented Black-Box Language Models - ACL Anthology NAACL-HLT 2024 在这项工作中&#xff0c;我们介绍了RePlug&#xff08;Retrieve and Plug&#xff09;&#xff0c;这是一个新的检索增强型…...

Matlab 基于共面螺旋管或共面亥姆霍兹谐振器的超薄低频吸声板

经典吸声材料的吸声性能严格依赖于材料的厚度&#xff0c;要达到完全吸声&#xff0c;至少需要四分之一波长。在本文中&#xff0c;我们报道了一种厚度约为波长百分之一的超薄吸声板&#xff0c;可以完全吸收声能。其策略是将四分之一波长的减声管弯曲并缠绕成二维共面减声管&a…...

济南国网数字化培训班学习笔记-第二组-4节-输电线路工程安全管理

输电线路工程安全管理 安全标识 颜色 禁止红、警示黄、指令蓝、提示绿 安全器具 定义 安全工器具通常专指“电力安全工器具”&#xff0c;是防止触电、灼伤、坠落、摔跌、腐蚀、窒息等事故&#xff0c;保障工作人员人身安全的各种专用工具和器具 分类 个体防护设备 防…...

【C语言】数据在内存中的存储:从整数到浮点数的奥秘

前言 在计算机的世界里&#xff0c;数据的存储和表示是编程的基础。今天&#xff0c;我们就来深入探讨一下数据在内存中的存储方式&#xff0c;包括整数和浮点数的存储细节&#xff0c;以及大小端字节序的奥秘。这些内容不仅对理解计算机系统至关重要&#xff0c;还能帮助我们…...

白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证

近日&#xff0c;北京白鲸开源科技有限公司与深圳计算科学研究院联合宣布&#xff0c;双方已完成产品兼容互认证。此次认证涉及深圳计算科学研究院自主研发的崖山数据库管理系统YashanDB V23和北京白鲸开源科技有限公司的核心产品WhaleStudio V2.6。经过严格的测试与验证&#…...

图论---朴素Prim(稠密图)

O( n ^2 ) 题目通常会提示数据范围&#xff1a; 若 V ≤ 500&#xff0c;两种方法均可&#xff08;朴素Prim更稳&#xff09;。 若 V ≤ 1e5&#xff0c;必须用优先队列Prim vector 存图。 // 最小生成树 —朴素Prim #include<cstring> #include<iostream> #i…...

借助deepseek和vba编程实现一张表格数据转移到多张工作簿的表格中

核心目标 将工作表中的内容按村社名称分类放入对应位置的目标工作簿的第一个工作表的对应位置 deepseek提问方式 你是一个擅长vba编程的专家&#xff0c;核心目标是奖工作表中的部分内容按下列要求写入对应工作簿的第一个工作表中。第一&#xff0c;在工作表A列中筛选出相…...

springboot整合redis实现缓存

一、redis 二、spring boot 整合redis 三、基于注解的Redis缓存实现 使用Cacheable、CachePut、CacheEvict注解定制缓存管理 对CommentService类中的方法进行修改使用Cacheable、CachePut、CacheEvict三个注解定制缓存管理&#xff0c;修改后的方法如下 Cacheable(cacheNam…...

git tag使用场景和实践

背景 每次上线一个迭代&#xff0c;为了区分本次代码的分支是哪个迭代&#xff0c;可以给分支打上tag&#xff0c;这样利于追踪分支所属迭代&#xff0c;如果devops没有自动给分支打tag&#xff0c;需要自己来打 操作 1.查看当前tag git tag2.给分支打tag git tag <tag…...

十分钟恢复服务器攻击——群联AI云防护系统实战

场景描述 服务器遭遇大规模DDoS攻击&#xff0c;导致服务不可用。通过群联AI云防护系统的分布式节点和智能调度功能&#xff0c;快速切换流量至安全节点&#xff0c;清洗恶意流量&#xff0c;10分钟内恢复业务。 技术实现步骤 1. 启用智能调度API触发节点切换 群联系统提供RE…...

国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目紫光同创FPGA相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx--Artix7系列FPGA上的应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上…...

最小生成树-prim、kruskal算法

目录 prim算法 kruskal算法 题目练习 &#xff08;1&#xff09;AcWing 858. Prim算法求最小生成树 - AcWing &#xff08;2&#xff09;859. Kruskal算法求最小生成树 - AcWing题库​编辑 学习之前建议温习一下迪杰斯特拉算法和并查集~ 先简单认识下最小生成树&#xff1a…...

【硬核干货】JetBrains AI Assistant 干货笔记

快进来抄作业&#xff0c;小编呕心沥血整理的 JetBrains AI Assistant 超干货笔记&#xff01; 原文链接&#xff1a;【硬核干货】JetBrains AI Assistant 干货笔记 关于晓数神州 晓数神州坚持以“客户为中心”的宗旨&#xff0c;为客户提供专业的解决方案和技术服务&#xff…...

强化学习核心原理及数学框架

1. 定义与核心思想 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是一种通过智能体&#xff08;Agent&#xff09;与环境&#xff08;Environment&#xff09;的持续交互来学习最优决策策略的机器学习范式。其核心特征为&#xff1a; ​​试错学习​​&#x…...

C# 综合示例 库存管理系统4 classMod类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 在《库存管理系统》中使用classMod类来保存全局变量。 变量定义和含义,请详见下面的源代码: public class classMod { //数据库路径...

[C] 第6章 C51函数

文章目录 C51函数函数概述从函数定义角度分类从函数有无返回值分类从函数有无参数 函数定义的一般形式C51无参函数的一般形式C51有参函数的一般形式 函数的形式参数和实际参数形式参数实际参数函数的返回值一般形式为&#xff1a; 函数的形参和实参的特点 函数的调用函数的调用…...

docker 配置代理

docker 配置代理有 2 中方法 1.Daemon configuration 直接在 /etc/docker/daemon.json 文件中配置 {"proxies": {"http-proxy": "http://proxy.example.com:3128","https-proxy": "https://proxy.example.com:3129",&quo…...

Redis 深度解析:从核心原理到生产实践

Redis 深度解析&#xff1a;从核心原理到生产实践 一、Redis 核心定位与数据结构 1. 核心能力矩阵深度解析 Redis 作为高性能内存数据库&#xff0c;核心能力覆盖缓存、数据存储、消息中间件等场景&#xff0c;其设计哲学围绕速度优先、内存高效、功能丰富展开&#xff1a; …...

从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践

一、需求背景与设计目标 在分布式系统中&#xff0c;面对突发流量时需要一种精准可控的流量控制手段。我们的组件需要具备&#xff1a; 多维度限流&#xff08;用户/IP/服务节点/自定义表达式&#xff09;分布式环境下精准控制开箱即用的Spring Boot Starter集成高扩展性的架…...

基于霍尔效应传感器的 BLDC 电机梯形控制方案详解

基于霍尔效应传感器的 BLDC 电机梯形控制方案解读 使用霍尔效应传感器的无刷直流(BLDC)电机梯形控制 一、系统核心架构与技术优势 (一)BLDC 电机与霍尔传感器控制原理 BLDC 电机作为永磁同步电机的一种,其核心特征是转子反电动势为梯形波,定子电流为 120 电角度宽度的矩…...

Pikachu靶场-File Inclusion

文件包含漏洞&#xff08;File Inclusion Vulnerability&#xff09;是Web应用程序中的一种常见安全漏洞&#xff0c;通常由于开发者未对用户输入进行严格过滤&#xff0c;导致攻击者能够包含并执行恶意文件。这种漏洞主要分为两种类型&#xff1a; 1. 漏洞类型 本地文件包含&a…...

如何模拟黑客攻击(Red Teaming)以测试服务器安全性

模拟黑客攻击&#xff08;Red Teaming&#xff09;是评估服务器安全性的有效方法&#xff0c;但需严格遵循**合法授权**和**道德准则**。以下是专业且安全的操作流程&#xff1a; --- ### **1. 前期准备** - **法律授权** - 获得目标系统的**书面授权**&#xff0c;明确测…...

分页查询优惠券

文章目录 概要整体架构流程技术细节小结 概要 接口分析 一个典型的带过滤条件的分页查询&#xff0c;非常简单。按照Restful风格设计即可&#xff0c;我们关注的点有两个&#xff1a; 请求参数 返回值格式 请求参数包含两部分&#xff0c;一个是分页参数&#xff0c;另一…...

QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信

在 Qt 中&#xff0c;您可以通过 QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信。以下是如何使用 Qt 实现这两种通信方式的简要示例。 1. TCP 网络通信 TCP 是面向连接的协议&#xff0c;确保数据的可靠传输。下面是一个简单的 TCP 客户端和服务器示例。 TCP …...

从岗位依附到能力生态:AI革命下“什么叫就业”的重构与价值

在人工智能(AI)技术深刻重塑社会生产关系的当下,“就业”这一概念正经历着从“职业绑定”到“能力变现”的范式转移。本文将从传统就业观的解构、AI赋能艺术教育的价值逻辑、以及未来就业形态的进化方向三个维度,探讨技术驱动下就业的本质变革,并揭示AI技术如何通过教育创…...

2025上海车展 | 移远通信全栈车载智能解决方案重磅亮相,重构“全域智能”出行新范式

2025年4月23日至5月2日&#xff0c;第二十一届上海国际汽车工业展览会在国家会展中心&#xff08;上海&#xff09;盛大启幕。作为车载智能解决方案领域的领军企业&#xff0c;移远通信以“全域智能 驭见未来”为主题&#xff0c;携丰富的车载解决方案及客户终端惊艳亮相8.2馆8…...

LVGL在VScode的WSL2中仿真

目录 一、前言 二、开始部署 1.拉取github的库 2.在WSL安装一些必要的库或者包 3.开始编译 三、注意事项 一、前言 相信有不少兄弟因为苦于没有外设而无法学习LVGL&#xff0c;这里我提供一种WSL中仿真LVGL工程的方法。结果图如下&#xff1a; 二、开始部署 1.拉取github…...