Qt框架核心组件完全指南:从按钮交互到定时器实现
文章目录
- 前言
- 一、QAbstractButton 按钮类
- 概述
- 1.1 常用属性
- 1.2 常用信号
- 1.3QButtonGroup 按钮组
- 二、QComboBox 组合框
- 三、若干与数字相关的组件
- 四、QString 字符串类
- 五、Qt容器类
- 5.1 顺序容器 QList
- 5.2 关联容器 QMap
- 六、QVariant
- 七、跨平台数据类型
- 7.1 基础数据类型
- 7.2 特殊用途类型
- 7.3 字符类型
- 八、QDateTime 日期时间类
- 8.1 常用函数
- 8.2 常用格式符
- 8.3 相关组件
- 8.4 代码示例
- 九、QTimer 定时器类
- 9.1 主要属性
- 9.2 常用函数
- 9.3 代码示例
- 总结
前言
上一篇文章,我们已经探讨了Qlabe的使用,今天我们将继续进行c++版本Qt的讨论与学习。本篇文章会继续完成按钮类等基本类别的介绍和qt各种组件的学习。如果有任何问题,欢迎评论留言。如果发现文章有不妥和错误之处,欢迎各位小伙伴们在评论区指正,笔者会每一条评论和留言都会查看。
一、QAbstractButton 按钮类
概述
QAbstractButton是按钮控件的抽象基类,提供了按钮的基础特性和功能。
1.1 常用属性
- text: 按钮显示的文本
- icon: 按钮显示的图标(可从iconfont.cn获取非商用图标)
- checkable: 按钮是否可选中
- checked: 按钮是否被选中
- down: 按钮是否被按下
图标可以从下面的网站下载(非商用):
免费图标icons
阿里巴巴矢量图标库
1.2 常用信号
clicked()
: 按钮被点击时发射pressed()
: 按钮被按下时发射released()
: 按钮被释放时发射toggled(bool checked)
: 按钮选中状态改变时发射
1.3QButtonGroup 按钮组
用于管理多个按钮的互斥或多选逻辑。
创建按钮组
// 堆内存+手动创建
QButtonGroup::QButtonGroup(QObject * parent = 0)
添加按钮
// 参数1:要添加的按钮
// 参数2:组中的编号,非重复的正数
void QButtonGroup::addButton(QAbstractButton * button, int id = -1)
互斥性控制
默认情况下,exclusive属性为true,组内按钮互斥(如单选)。
若需支持多选,需显式设置为false:
group->setExclusive(false); // 允许多选
示例代码包
二、QComboBox 组合框
提供下拉列表供用户选择,功能类似 QRadioButton(单选),但占用更少的界面空间,适合选项较多或需要紧凑布局的场景。
常用属性
常用信号
示例代码包
三、若干与数字相关的组件
共有属性
minimum (int)
说明:组件允许的最小值
类型:整数
maximum (int)
说明:组件允许的最大值
类型:整数
value (int)
说明:组件的当前值(必须在 minimum 和 maximum 范围内)
类型:整数
共有信号
valueChanged(int i)
触发条件:当组件的 value 值发生变化时发射。
参数:i 表示变化后的新值。
// value值变化时发射的信号
void valueChanged(int i) [signal]
代码示例:
当拖动QDial组件的时候,其它进度条会一起变动
示例包
四、QString 字符串类
基本特性
Qt框架中的字符串类,采用Unicode编码
每个字符用16位的QChar表示,支持多语言字符(如中文、日文等)
高度兼容标准C++的字符串API
英文名称 | 中文解释 |
---|---|
append | 向后追加 |
at | 取出元素 |
begin | 获取开始位置的迭代器 |
clear | 清空 |
compare | 比较 |
contains | 包含 |
count | 数量 |
endsWith | 以…结尾 |
fill | 每个元素填充 |
indexOf | 出现的位置序号 |
insert | 插入 |
isEmpty/isNull | 是否为空,注意二者有差别 |
lastIndexOf | 最后一次出现的位置下标 |
length | 长度 |
prepend | 向前追加 |
push_back | 向后追加 |
push_front | 向前追加 |
remove | 移除 |
replace | 替换 |
size | 大小 |
split | 分割 |
startsWith | 以…开始 |
swap | 交换 |
trimmed | 去除空格 |
truncate | 截取 |
核心功能
// 数字 → QString
// 参数1:要转换的数字
// 参数2:进制(默认10进制)
// 返回值:转换后的字符串
QString QString::number(long n, int base = 10) [static]
// QString → int
// 参数1:bool指针接收转换成功状态(可选)
// 参数2:进制(默认10进制)
// 返回值:转换后的数字(失败返回0)
int QString::toInt(bool *ok = nullptr, int base = 10) const
代码示例解析
#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug> // 添加调试输出头文件Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);// 示例1:多语言字符处理QString text = "あいうえお你好"; // 混合日文和中文qDebug() << "字符数量:" << text.count(); // 输出:7(每个字符占1个计数)// 示例2:数字转字符串(3进制)int count = 23;text = QString::number(count, 3); // 23的三进制表示qDebug() << "三进制字符串:" << text; // 输出:"212"// 示例3:字符串转数字(带错误检查)text = "0";bool convertSuccess = false;count = text.toInt(&convertSuccess, 10); // 十进制转换if(convertSuccess) {qDebug() << "转换成功:" << count; // 输出:转换成功:0} else {qDebug() << "转换失败:" << count; // 若text="abc",此处输出失败且count=0}
}Dialog::~Dialog()
{delete ui; // 清理UI资源
}
五、Qt容器类
Qt的容器类相比于C++的STL中的容器类更轻巧、安全和易于使用。
5.1 顺序容器 QList
示例: 使用QList存储自定义类Student
- 在Qt Creator中:
- 右键项目 → “添加新文件”
- 选择创建"C++类"
- 在弹出的窗口中:
- 编写类名
- 项目管理界面:
- 直接点击"完成"
- 编辑文件:
- 在生成的头文件/源文件中编写类内容
Student + QList示例
代码包
5.2 关联容器 QMap
QMap示例
代码包
六、QVariant
QVariant 是 Qt 中用于通用类型存储和转换的类,能够封装 Qt 常见类型(如 int、QString、QList 等),并在需要时进行类型转换。其核心作用是提高函数的参数和返回值兼容性。
核心功能
-
存储任意类型
-
可保存 Qt 内置类型(如 QString、int、bool、QSize 等)及自定义类型(需通过 Q_DECLARE_METATYPE 注册)。
类型安全转换 -
提供 toXxx() 方法将存储的值转换为目标类型,若类型不匹配返回默认值(如 toInt() 失败返回 0)。
运行时类型检查 -
通过 type() 或 userType() 获取当前存储的实际类型(如 QVariant::String)。
基本用法
- Qt 类型 → QVariant
直接通过构造函数或 setValue() 存储:
QVariant v1(42); // 存储 int
QVariant v2("Hello"); // 存储 QString
QVariant v3 = QSize(100, 50); // 存储 QSize
- QVariant → Qt 类型
调用 toXxx() 方法转换:
int num = v1.toInt(); // 42
QString text = v2.toString(); // "Hello"
QSize size = v3.toSize(); // QSize(100, 50)
- 类型检查与默认值
if (v1.canConvert<int>()) {int num = v1.toInt(); // 安全转换
}
QDate date = v4.toDate(QDate(2000, 1, 1)); // 转换失败返回默认值
七、跨平台数据类型
由于C++基础数据类型在不同平台/编译器下存在差异(如int
、long
等长度可能变化),Qt提供了以下跨平台类型保证一致性
7.1 基础数据类型
Qt 类型 | 等价C++类型 | 字节长度 | 说明 |
---|---|---|---|
qint8 | int8_t | 1 | 有符号8位整数 |
quint8 | uint8_t | 1 | 无符号8位整数 |
qint16 | int16_t | 2 | 有符号16位整数 |
quint16 | uint16_t | 2 | 无符号16位整数 |
qint32 | int32_t | 4 | 有符号32位整数 |
quint32 | uint32_t | 4 | 无符号32位整数 |
qint64 | int64_t | 8 | 有符号64位整数 |
quint64 | uint64_t | 8 | 无符号64位整数 |
qreal | double | 8(*) | 浮点数(多数平台为double) |
*注:
qreal
在多数平台是double
(8字节),但在ARM架构可能为float
(4字节)
7.2 特殊用途类型
Qt 类型 | 说明 |
---|---|
qintptr | 指针大小的有符号整数(内存地址) |
quintptr | 指针大小的无符号整数 |
qsizetype | 大小相关的类型(如容器尺寸) |
qfloat16 | 半精度浮点(Qt 6.0+) |
7.3 字符类型
Qt 类型 | 等价C++类型 | 说明 |
---|---|---|
QChar | char16_t | UTF-16字符(2字节) |
char8_t | C++20标准 | UTF-8字符(Qt 6.0+支持) |
八、QDateTime 日期时间类
Qt提供QDate处理日期、QTime处理时间,而QDateTime同时处理日期和时间。
8.1 常用函数
获取当前时间戳(毫秒)
qint64 QDateTime::currentMSecsSinceEpoch() [static]
返回从1970-01-01 00:00:00(UTC)到当前的毫秒数(时间戳)。
获取当前日期时间
QDateTime QDateTime::currentDateTime() [static]
返回包含当前系统日期和时间的QDateTime对象。
日期时间转字符串
QString QDateTime::toString(const QString &format) const
将QDateTime按指定格式转换为字符串,例如:
QDateTime now = QDateTime::currentDateTime();
QString str = now.toString("yyyy-MM-dd hh:mm:ss"); // 输出:2023-08-25 14:30:45
8.2 常用格式符
符号 | 含义 | 示例 |
---|---|---|
yy | 两位年份 | 23 |
yyyy | 四位年份 | 2023 |
M 月份 | (无前导零) | 8 |
MM | 月份(两位) | 08 |
d | 日(无前导零) | 5 |
dd | 日(两位) | 05 |
h | 小时(12小时制) | 2 |
hh | 小时(两位,12小时制) | 02 |
H | 小时(24小时制) | 14 |
HH | 小时(两位,24小时制) | 14 |
m | 分钟(无前导零) | 3 |
mm | 分钟(两位) | 03 |
s | 秒(无前导零) | 5 |
ss | 秒(两位) | 05 |
AP | AM/PM 标识 | PM |
8.3 相关组件
QDateEdit
用于编辑日期的输入框,支持日期选择器。
QTimeEdit
用于编辑时间的输入框,支持时间选择。
QDateTimeEdit
结合日期和时间的输入组件。
QCalendarWidget
提供图形化日历界面,用于选择日期。
8.4 代码示例
代码包(新版qt运行不了这个,要用老版本)
九、QTimer 定时器类
QTimer 是 Qt 提供的定时器类,用于处理周期性或一次性(延时)的任务。
9.1 主要属性
属性 | 类型 | 描述 |
---|---|---|
active | const bool | 定时器是否在运行 |
interval | int | 间隔时间,单位毫秒 |
singleShot | bool | 是否是一次性定时器 |
9.2 常用函数
构造函数
QTimer::QTimer(QObject *parent = nullptr)
主要槽函数
// 启动定时器,如果定时器已经运行,则会停止并重新运行
void QTimer::start() [slot]
// 停止定时器
void QTimer::stop() [slot]
信号
// 定时器超时信号(到点了的通知信号)
void QTimer::timeout() [signal]
9.3 代码示例
代码包
总结
本文全面解析了Qt框架中的核心UI组件和功能类,首先介绍了QAbstractButton按钮基类及其子类(QPushButton、QCheckBox等)的属性和信号机制,详细说明了QButtonGroup的互斥控制实现;接着深入讲解了QComboBox下拉列表的紧凑布局优势,分析了数字组件(QSlider、QSpinBox等)的共有属性和联动逻辑;在数据处理部分,重点剖析了QString的多语言编码支持和类型转换方法,对比了QList顺序容器与QMap关联容器的使用场景;此外还详解了QVariant的通用类型存储机制、Qt跨平台数据类型的兼容性设计、QDateTime的日期时间处理技巧以及QTimer定时器的周期任务实现方案,通过多个代码示例包和可视化图表展示了各类组件的实际应用场景。
相关文章:
Qt框架核心组件完全指南:从按钮交互到定时器实现
文章目录 前言一、QAbstractButton 按钮类概述1.1 常用属性1.2 常用信号1.3QButtonGroup 按钮组 二、QComboBox 组合框三、若干与数字相关的组件四、QString 字符串类五、Qt容器类5.1 顺序容器 QList5.2 关联容器 QMap 六、QVariant七、跨平台数据类型7.1 基础数据类型7.2 特殊…...
Axure设计数字乡村可视化大屏:从布局到交互的实战经验分享
乡村治理正从传统模式向“数据驱动”转型。数字乡村可视化大屏作为数据展示的核心载体,不仅能直观呈现乡村发展全貌,还能为决策提供科学依据。本文以Axure为工具,结合实际案例,分享如何从零设计一个功能完备、交互流畅的数字乡村大…...
60天python训练计划----day30
DAY 30 模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 一.导入官方库 我们复盘下学习python的逻辑,所谓学习pyth…...
HJ3 明明的随机数【牛客网】
文章目录 零、原题链接一、题目描述二、测试用例三、解题思路3.1 快排去重3.2 散列 四、参考代码4.1 快排去重4.2 散列 零、原题链接 HJ3 明明的随机数 一、题目描述 二、测试用例 三、解题思路 3.1 快排去重 基本思路: 先将序列进行快速排序,然后…...
BGP选路
一、拓扑图 二、要求及分析 1.要求 1.使用Preva1策略,确保R4通过R2到达192.168.10.0/24 2、用As Path策略,确保R4通过R3到达192.168.11.0/24 3.配置MED策略,确保R4通过R3到达192.168.12.0/24 4.使用Local Preference策略,确保…...
践行“科学智能”!和鲸打造 AI for Science 专属应用
AI for good, AI for Science. 在传统科研领域,人力与经验的局限始终如影随形。而“AI for Science”正逐渐改变科学研究的模式,以科学数据为基石、以强大算力为支撑,借助人工智能技术,开展计算密集度高且能够实现高效迭代的科学…...
【vs2022的C#窗体项目】打开运行+sql Server改为mysql数据库+发布
1. vs2022打开运行原sql Server的C#窗体项目更改为mysql数据库 1.1. vs2022安装基础模块即可 安装1️⃣vs核心编辑器2️⃣.net桌面开发必选,可选均不安装!!! 为了成功连接mysql数据库,需要安装组件NuGet包管理器 安…...
wpf DataGrid 行选择事件
在WPF中处理DataGrid行选择事件主要有以下几种实现方式: 1.SelectionChanged事件处理 通过直接订阅DataGrid的SelectionChanged事件实现行选择响应: <DataGrid SelectionChanged="DataGridAccurateLocationList_SelectionChanged" .../>后台代码中处理…...
Spring Cloud Seata 深度解析:原理与架构设计
文章目录 前言:为什么我们需要理解分布式事务?一、Seata 核心架构深度拆解1.1 分布式事务核心模型1.2 Seata undo_log 存储结构与版本控制存储结构版本控制核心算法 1.3 Seata 事务模型深度对比与实现原理AT 模式(Auto Transaction࿰…...
从产品展示到工程设计:3DXML 转 STP 的跨流程数据转换技术解析
在数字化设计与制造领域,不同格式的三维模型文件常常需要进行转换,以满足不同软件和工作流程的需求。3DXML 和 STP(STEP AP214/AP242)是工业领域常用的两种三维模型文件格式,3DXML 格式以其轻量化和便于网络传输、可视…...
基于RT-Thread的STM32F4开发第五讲——软件模拟I2C
文章目录 前言一、RT-Thread工程创建二、AT24C02三、函数编写1.I2C_soft.c2.I2C_soft.h3.main.h 四、效果展示五、资源分享总结 前言 本章是基于RT-Thread studio实现软件模拟I2C,开发板是正点原子的STM32F4探索者,使用的RT-Thread驱动是5.1.0࿰…...
pkucpc2025 L:Game on Tree
题意 两个人在一棵无根树上玩游戏,每次可以删掉若干个叶子节点,不能操作的人输。 思路 比赛的时候我去写H Quintuple了,队友貌似在我写的时候把这道题讨论出来了。 后来补题的时候花了大概花了70分钟左右ac这道题。 首先考虑一条链的情况…...
大数据实时分析:ClickHouse、Doris、TiDB 对比分析
随着企业对数据分析实时性、复杂性和多样性的要求越来越高,传统的批处理数仓已经无法满足实时指标看板、流量监控、用户行为分析等场景需求。因此,越来越多的公司开始引入实时分析型数据库系统。 目前,国内外常见的实时分析数据库有: ClickHouse:列式数据库,极致的分析性…...
网络流量分析系统的十大应用场景
在现代企业和组织的IT运维体系中,网络流量分析系统(Network Traffic Analysis, NTA)早已不仅仅是用来查看带宽使用率的“流量计数器”。随着网络环境的复杂化、攻击技术的不断演进,以及对业务连续性要求的提升,网络流量…...
问题 | 代码审查:函数是否包含返回语句
“函数是否包含返回语句”这一问题的核心是:在编程中,函数是否按照设计要求正确使用了 返回语句(如 return、return value),以便向调用者传递结果或控制权。以下是详细解释: 1. 什么是函数的返回语句&#…...
Spring Bean 生命周期中设计模式的应用与解析
Spring Bean 生命周期中使用的设计模式 Spring Bean 的生命周期涉及多个阶段和扩展点,Spring 框架在这一过程中巧妙运用了多种设计模式,以实现强大的功能和灵活性。以下是主要设计模式及其应用场景: 1. 工厂模式(Factory Patter…...
设计模式的原理及深入解析
创建型模式 创建型模式主要关注对象的创建过程,旨在通过不同的方式创建对象,以满足不同的需求。 工厂方法模式 定义:定义一个创建对象的接口,让子类决定实例化哪一个类。 解释:工厂方法模式通过定义一个创建对象的…...
kotlin flow的两种SharingStarted策略的区别
一 两种 SharingStarted 策略的区别: SharingStarted.Eagerly: 立即开始收集上游流,即使没有下游订阅者持续保持活跃状态,直到 ViewModel 被清除优点:响应更快,数据始终保持最新缺点:消耗更多资源&#x…...
BGP综合实验(2)
一、实验需求 1、实验拓扑图 2、实验需求 使用 PreVal 策略,让 R4 经 R2 到达 192.168.10.0/24 。 使用 AS_Path 策略,让 R4 经 R3 到达 192.168.11.0/24 。 配置 MED 策略,让 R4 经 R3 到达 192.168.12.0/24 。 使用 Local Preference 策…...
python使用jsonpath-ng库操作json数据
jsonpath-ng 库的详细使用如下: 一、安装与导入 安装 通过 pip 安装库: pip install jsonpath-ng支持 Python 3.6 及以上版本。 导入核心模块 主要使用 parse 函数和 JSONPath 对象: from jsonpath_ng import parse二、基础查询操作 1. 简单…...
通用简洁工作汇报项目评估营销策划工作总结年终汇报PPT模版8套一组分享
工作总结汇报PPT模版8套一组分享:工作总结汇报PPT模版分享https://pan.quark.cn/s/04b7ab7a47c4 第一套PPT模版,主要是黄色和灰色调,上方有大面积黄色不规则形状背景,有“POWERPOINT”和“XXXXPPT模版”字样,左侧是黑…...
掌握Git:版本控制与高效协作指南
一、初始Git 提出问题:无论是在工作还是学习,我们在编写各种文档的时候,更改失误,失误后恢复到原来版本,不得不复制出一个副本。 每个版本由各自的内容,但最终只有一个报告需要被我们使用。 但在此之前的…...
ubuntu下配置vscode生成c_cpp_properties.json
-------------学习记录--------------- 在ubuntu下使用vscode时发现cpp文件无法读到头文件,明明头文件在合适的路径下,由于没有制定头文件的路径造成的这个问题。用这篇文章进行简单记录解决方法 ctrlshiftp打开命令面板,也可以点击左上角, …...
Qt读取Excel文件的技术实现与最佳实践
目录 一、成果展示二、核心方法及原理1. QAxObject(基于COM接口)2. 第三方库QXlsx3. ODBC数据库驱动 三、实现步骤详解1. QAxObject读取Excel(需安装Excel/WPS)2. QXlsx读取Excel(跨平台方案) 四、技术选型…...
双条件拆分工作表,一键生成独立工作簿-Excel易用宝
你是否遇到过这样的崩溃瞬间?面对一张密密麻麻的销售数据表,需要按指定维度拆分成工作簿和工作表,而你却只能手动复制粘贴到不同工作簿、工作表,改一个字段就花半小时,数据量大时甚至要熬夜加班? 别担心&a…...
iOS 蓝牙开发中的 BT 与 BLE
在 iOS 开发者的语境里,大家把 BT 和 BLE 当成两种不同的蓝牙技术在谈——它们来自同一个 Bluetooth 规范,但面向的场景、协议栈乃至 Apple 提供的 API 都截然不同。 缩写全称 / 技术名称规范层叫法iOS 支持现状典型用途BTBluetooth Classic(经典蓝牙)又叫 BR/EDR(Basic R…...
TCP和套接字SSL加密连接行为分析
目录 一、前言 二、背景 三、参数介绍 3.1、 have_openssl 3.2、have_ssl 3.3、require_secure_transport 四、--ssl-modemode 五、CREATE USER SSL/TLS选项 六、问题验证 6.1、使用套接字连接 6.2、使用TCP连接 七、分析与总结 一、前言 SSL(Secure S…...
kafka 问与答
kafka Q&A How does the client connect to kafka and discovery the brokers. client 只需要知道一部分nodes(brokers)的地址既可以,client 会自动发现剩下的所有topic partition leader nodes, 然后连接上。 When a client connects:It uses the bootstrap…...
docker默认存储迁移
在容器化场景下默认存储路径为(/var/lib/docker)大多数平台根目录不支持系统盘扩容,会有空间不足风险隐患,因未配置持久化存储导致容器数据丢失。以迁移Docker存储路径至大容量/data目录说明 一、停止容器 systemctl stop docke…...
Ubuntu20.04系统下使用交叉编译工具链(aarch、x86)交叉编译opencv4.5.0
文章目录 0. 引言1. 准备交叉编译工具链2. 安装依赖工具3. 下载 OpenCV 源码4. 创建交叉编译工具链文件5. 配置 CMake 构建6. 构建 OpenCV7. 安装 OpenCV8. 验证9. 问题及解决办法 0. 引言 Ubuntu20.04系统下使用交叉编译工具链(aarch、x86)交叉编译ope…...
R语言数据可视化
R note book 文档–输出html格式文档,plotly不能生成PDF文件 --- title: "R语言数据可视化" output: html_notebook ---在R语言中进行数据可视化是数据分析和呈现的重要环节,R提供了多种强大的绘图系统和工具。以下是常见的数据可视化方法和示…...
NLP学习路线图(一): 线性代数(矩阵运算、特征值分解等)
引言:语言与矩阵的奇妙邂逅 在自然语言处理(NLP)的魔法世界里,每个词语都像被施了变形术的精灵,在数学的殿堂中翩翩起舞。当我们用"king - man woman queen"这样的向量魔法破解语义密码时,线性…...
【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ
最大连续1的个数 Ⅲ 一、题目链接二、题目三、题目解析四、算法原理解法一:暴力枚举 zero计数器解法二:滑动窗口 五、编写代码六、时空复杂度 一、题目链接 最大连续1的个数 Ⅲ 二、题目 三、题目解析 注意题目中说的是最多k次,在一个数组…...
Linux 内核等待机制详解:prepare_to_wait_exclusive 与 TASK_INTERRUPTIBLE
1. prepare_to_wait_exclusive 函数解析 1.1 核心作用 prepare_to_wait_exclusive 是 Linux 内核中用于将进程以独占方式加入等待队列的关键函数,其主要功能包括: 标记独占等待:通过设置 WQ_FLAG_EXCLUSIVE 标志,表明此等待条目是独占的。 安全入队:在自旋锁保护下,将条…...
分布式数据库TiDB:深度解析原理、优化与架构设计
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【星海网址导航】 一、TiDB架构设计与核心原理 1.1 分布式架构演进 传统分库分表 vs TiDB架构 #mermaid-svg-8I88Hg2AVkzYTb3O {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fi…...
【深度学习基础】损失函数与优化算法详解:从理论到实践
【深度学习基础】损失函数与优化算法详解:从理论到实践 一、引言 1. 损失函数与优化算法在深度学习中的核心作用 在深度学习中,模型训练的本质是通过不断调整参数,使模型输出尽可能接近真实值。这一过程的核心驱动力是损失函数(…...
睿抗足球机器人
目录 大框架 战术 Lua脚本语言编辑环境 大框架 策略脚本(LUA-官方脚本)、决策算法(C-自定义)、ROS系统 战术 我们研究了场地的长度、宽度、禁区范围、机器人运动速度等等,发现即使 Kicker 点球往极端角度踢…...
助力DBA技能无缝平迁 | YashanDB携最新成果亮相XCOPS智能运维管理人年会
5 月 16 日,由上海市软件行业协会、上海市计算机行业协会指导, dbaplus社群主办的XCOPS智能运维管理人年会在广州盛大召开,活动汇聚500余名金融、政府、能源、教育、电信、交通等领域的行业专家。深算院崖山数据库受邀参会,系统性…...
服务端安全测试:OWASP ZAP使用
ZAP下载地址:https://www.zaproxy.org/download/ ZAP有两种扫描方式: 1、使用 OpenAPI / Swagger 地址进行扫描 2、ZAP Proxy + Postman 因为业务云没有添加swagger插件所以本次介绍第2种方式。 【第一步】设置 ZAP 的代理端口(默认是 127.0.0.1:8080) 成功安装并打…...
Amazon Q 从入门到精通 – 测试与重构
Amazon Q Developer 是亚马逊推出的一个专为专业开发人员设计的人工智能助手,旨在提升代码开发和管理效率。其主要功能包括代码生成、调试、故障排除和安全漏洞扫描,提供一站式代码服务。 众所周知,在软件开发领域,测试代码是软件…...
[CSS3]属性增强2
空间转换 使用transform属性实现元素在空间内的位移、旋转、缩放等效果 空间: 是从坐标轴角度定义的。x、y 和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同。空间转换也叫3D转换 空间位移 使用translate实现元素空间位移效果 transform: translate3d(x…...
Go 语言 vs C+Lua(Skynet)游戏服务器方案对比分析
为啥挑这两个呢?因为两种技术分别对应CSP模型和Actor模型,都是经过时间检验的成熟且可靠的并发模型,问了很多地方,经过gpt整理得出如下报告。 从开发效率、运行性能、热更新扩展、云部署与水平扩展能力、多类型游戏支持等五个维度…...
ArcGIS Pro 3.4 二次开发 - 内容
环境:ArcGIS Pro SDK 3.4 .NET 8 文章目录 内容1 工程1.1 创建一个空工程1.2 使用指定名称创建新工程1.3 使用Pro的默认设置创建新工程1.4 使用自定义模板文件创建新工程1.5 使用 ArcGIS Pro 提供的模板创建工程1.6 打开现有工程1.7 获取当前工程1.8 获取当前工程的…...
java每日精进 5.19【Excel 导入导出】
基于 EasyExcel 实现 Excel 的读写操作,可用于实现最常见的 Excel 导入导出等功能。 Excel 导入导出功能涉及前后端协作,后端处理数据查询、文件生成和解析,前端提供用户交互和文件下载/上传界面。以下是全流程解析,分为导出流程…...
基于Elasticsearch的搜索引擎简介
## 一、Elasticsearch简介 Elasticsearch(简称ES)是一个开源的、分布式、RESTful风格的搜索和数据分析引擎,基于Apache Lucene开发。它能够实现对海量结构化和非结构化数据的实时存储、搜索和分析,广泛应用于全文检索、日志分析、…...
不同类型桥梁的无人机检测内容及技术难度
不同类型桥梁的无人机检测内容及技术难度 无人机桥梁检测的难度因桥梁类型、结构特点和所处环境的不同而存在显著差异。以下是针对梁桥、拱桥、斜拉桥、悬索桥等主要桥梁类型的无人机检测难度分析: 1. 梁桥(简支梁、连续梁) 检测难度&#x…...
数据结构实验10.1:内部排序的基本运算
文章目录 一,实验目的二,实验内容1. 数据生成与初始化2. 排序算法实现(1)直接插入排序(2)二分插入排序(3)希尔排序(4)冒泡排序(5)快速…...
java20
1.List集合 2.数据结构之栈,队列,数组,链表 3.ArrayList集合 4.LinkedList 5.泛型 注意:E...e是指若干个变量...
LLM笔记(九)KV缓存(2)
文章目录 1. 背景与动机2. 不使用 KV Cache 的情形2.1 矩阵形式展开2.2 计算复杂度 3. 使用 KV Cache 的优化3.1 核心思想3.2 矩阵形式展开3.3 计算复杂度对比 4. 总结5. GPT-2 中 KV 缓存的实现分析5.1 缓存的数据结构与类型5.2 在注意力机制 (GPT2Attention) 中使用缓存5.3 缓…...
将 Element UI 表格拖动功能提取为公共方法
为了在多个页面复用表格拖动功能,我们可以将其封装成以下两种形式的公共方法: 方案一:封装为 Vue 指令(推荐) 1. 创建指令文件 src/directives/tableDrag.js import interact from interactjs;export default {inse…...