10.QT-显示类控件|LCD Number|ProgressBar|Calendar Widget(C++)
LCD Number
QLCDNumer 是⼀个专⻔⽤来显⽰数字的控件.类似于"⽼式计算器"的效果
属性 | 说明 |
---|---|
intValue | QLCDNumber 显⽰的数字值(int). |
value | QLCDNumber 显⽰的数字值(double). 和intValue是联动的. 例如给value设为1.5,intValue的值就是2. 另外,设置value和intValue的⽅法名字为 display ,⽽不是 setValue 或者 setIntValue . |
digitCount | 显⽰⼏位数字. |
mode | 数字显⽰形式. 1. QLCDNumber::Dec :⼗进制模式,显⽰常规的⼗进制数字。 2. QLCDNumber::Hex :⼗六进制模式,以⼗六进制格式显⽰数字。 3. QLCDNumber::Bin :⼆进制模式,以⼆进制格式显⽰数字。 4. QLCDNumber::Oct :⼋进制模式,以⼋进制格式显⽰数字。 只有⼗进制的时候才能显⽰⼩数点后的内容. |
segmentStyle | 设置显⽰⻛格. 1. QLCDNumber::Flat :平⾯的显⽰⻛格,数字呈现在⼀个平坦的表⾯上。 2. QLCDNumber::Outline :轮廓显⽰⻛格,数字具有清晰的轮廓和阴影效果。 3. QLCDNumber::Filled :填充显⽰⻛格,数字被填充颜⾊并与背景区分开。 |
smallDecimalPoint | 设置⽐较⼩的⼩数点. |
代码⽰例:倒计时
1)在界⾯上创建⼀个 QLCDNumber ,初始值设为10.
objectName 为 lcdNumber
2)修改widget.h代码,创建⼀个 QTimer 成员,和⼀个 updateTime 函数
使用QLCDNumber显示一个初始的数值,比如10
每隔一秒钟,数字就-1 一直到0,就停止了.
此处关键要点是要实现“每秒钟-1”这个效果
周期性的执行某个逻辑~~“定时器"
C++标准库中,没有提供定时器的实现.Boost里面提供了对应的功能
Qt中也封装了对应的定时器~~(结合了信号槽机制的) QTimer
通过这个类创建出来的对象,就会产生一个timeout这样的信号
可以通过start方法来开启定时器,并且参数中设定触发timeout信号的周期
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lcdNumber->display("10");//创建一个QTimer实例QTimer* timer = new QTimer(this);//把QTimer的timeout信号和自己的槽函数进行连接connect(timer, &QTimer::timeout, this, &Widget::handle);// 启动 QTimer, 并且规定每隔 1000ms 触发⼀次 timeout 信号timer->start(1000);
}Widget::~Widget()
{delete ui;
}void Widget::handle()
{qDebug() << "handle";
}
QTimer 表⽰定时器.通过 start ⽅法启动定时器之后,就会每隔⼀定周期,触发⼀次QTimer::timeout 信号.
使⽤ connect 把 QTimer::timeout 信号和 Widget::handle 连接起来,意味着每次触发 QTimer::timeout 都会执⾏ Widget::handle
每隔一秒钟会执行一个handle
void Widget::handle()
{//先拿到lcdnumber中的数字int value = ui->lcdNumber->intValue();if (value <= 0){//数字减到0了,停止计时器timer->stop();return;}ui->lcdNumber->display(value - 1);
}
- 通过 intValue 获取到 QLCDNumber 内部的数值.
- 如果value的值归0了,就停⽌ QTimer .接下来 QTimer 也就不会触发timeout信号了.
1)上述代码如果直接在Widget构造函数中,通过⼀个循环+sleep的⽅式是否可以呢?
Sleep=> Windows 的 api,需要包含"Windows.h"头文件才能使用的
C++ 11 标准库中引l入了 sleep 操作. sleep_for
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);int value = ui->lcdNumber->intValue();while (true) {//先休眠一秒std::this_thread::sleep_for(std::chrono::seconds(1));if (value <= 0) {break;}ui->lcdNumber->display(--value);}
}
Widget的构造函数
需要把Widget构造完毕,然后才能执行后续的显示操作~~
循环会使Widget的构造函数⽆法执⾏完毕,此时界⾯是不能正确构造和显⽰的.
2)上述代码如果是在Widget构造函数中,另起⼀个线程,在新线程中完成循环+sleep是否可以呢?
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);std::thread t([this](){int value = this->ui->lcdNumber->intValue();while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));if (value <= 0) {break;}ui->lcdNumber->display(--value);}});
}
这个代码同样是不⾏的.
Qt中规定,任何对于GUI上内容的操作,必须在主线程中完成.像Widget构造函数,以及connect连接的slot函数,都是在主线程中调⽤的.⽽我们⾃⼰创建的线程则不是.
当我们⾃⼰的线程中尝试对界⾯元素进⾏修改时,Qt程序往往会直接崩溃.
这样的约定主要是因为GUI中的状态往往是牵⼀发动全⾝的,修改⼀个地⽅,就需要同步的对其他内容进⾏调整.
⽐如调整了某个元素的尺⼨,就可能影响到内部的⽂字位置,或者其他元素的位置.这⾥⼀连串的修改,都是需要按照⼀定的顺序来完成的.
由于多线程执⾏的顺序⽆法保障,因此Qt从根本上禁⽌了其他线程修改GUI状态,避免后续的⼀系列问题.
综上所述,使⽤定时器,是实现上述功能的最合理⽅案
ProgressBar
使⽤ QProgressBar 表⽰⼀个进度条
属性 | 说明 |
---|---|
minimum | 进度条最⼩值 |
maximum | 进度条最⼤值 |
value | 进度条当前值 |
alignment | ⽂本在进度条中的对⻬⽅式. • Qt::AlignLeft :左对⻬ • Qt::AlignRight :右对⻬ • Qt::AlignCenter :居中对⻬ • Qt::AlignJustify :两端对⻬ |
textVisible | 进度条的数字是否可⻅. |
orientation | 进度条的⽅向是⽔平还是垂直 |
invertAppearance | 是否是朝反⽅向增⻓进度 |
textDirection | ⽂本的朝向. |
format | 展⽰的数字格式. • %p :表⽰进度的百分⽐(0-100) • %v :表⽰进度的数值(0-100) • %m :表⽰剩余时间(以毫秒为单位) • %t :表⽰总时间(以毫秒为单位) |
代码⽰例:设置进度条按时间增⻓
1)在界⾯上创建进度条, objectName 为 progressBar
其中最⼩值设为0,最⼤值设为100.当前值设为0.
创建一个进度条,
让这个进度条的进度跟随时间增长
(可以假设,每隔100ms,让进度条数值+1)
设置初始值
2)修改widget.h,创建 QTimer 和 updateProgressBar 函数.
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimer>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void handle();private:Ui::Widget *ui;QTimer* timer;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);timer = new QTimer(this);connect(timer, &QTimer::timeout, this, &Widget::handle);//启动操作要在槽函数之后timer->start(100);
}Widget::~Widget()
{delete ui;
}void Widget::handle()
{//获取当前数值int value = ui->progressBar->value();if (value >= 100) {//进度条满了,就可以停止计时器timer->stop();return;}ui->progressBar->setValue(value + 1);
}
在实际开发中,进度条的取值,往往是根据当前任务的实际进度来进⾏设置的.
⽐如需要读取⼀个很⼤的⽂件,就可以获取⽂件的总的⼤⼩,和当前读取完毕的⼤⼩,来设置进度条的⽐例.
由于上⾯我们介绍了Qt禁⽌在其他线程修改界⾯,因此进度条的更新往往也是需要搭配定时器来完成的.
通过定时器周期触发信号,主线程调⽤对应的slot函数.再在slot函数中对当前的任务进度进⾏计算,并更新进度条的界⾯效果.
虽然在widget.h中用到了QTimer,但是却没在.h文件中包含<QTimer>
头文件
为啥这个代码编译不会出错?
为啥此处的QTimer就不会提示“找不到定义”之类的
上述问题其实是通过Qt内部提供的一个特殊技巧来实现的~~
在Qt中,有一个专门的头文件这个头文件中包含了Qt中所有类的“前置声明
这个头文件,一般不会直接接触到,但是包含其他的Qt的头文件,都会间接的包含到这个头文件
Widget类的前面已经提供了QTimer类的声名的话
此时就可以在Widget中声明QTimer的指针/引I用类型的成员~~ 后续如果要真正使用QTimer(包括创建实例,使用里面的成员…)
仍然需要包含QTimer的头文件(包含了QTimer的详细的类的定义)
Qt为啥要使用上述的技巧,上述技巧能解决什么问题?有啥提升呢?主要解决的是编译速度的问题
C/C++的代码,编译速度在其他语言横向对比中,是非常慢的
对于一个大规模的项目,编译速度可能非常慢!!!俺在华为的时候,我们哪怕只是给代码中添加一个 printf,编译消耗的时间,就是1个小时左右
C++编译速度慢,和 #include
头文件,有直接关系的,由于include关系错综复杂
因此,尽可能减少 include 头文件的个数,就可以有效的减少编译时间
Qt中就使用class前置声明的方式,来尽量减少头文件的包含
通过前置声明的方式,Qt中的头文件,每个头文件包含的其他头文件数量都能得到一定的降低
所以在C++20 标准开始,就引l入了"模块”module 来替代 #include
代码⽰例:创建⼀个红⾊的进度条
QProgressBar 同样也是 QWidget 的⼦类,因此我们可以使⽤ styleSheet 通过样式来修改进度条的颜⾊.
QProgressBar::chunk {background-color: red;}
QProgressBar::chunk:选择器,设置的样式要针对哪个控件生效
chunk就是原绿色的部分
点击ok,变为红色
同时把 QProcessBar 的 alignment 属性设置为垂直⽔平居中.
此处如果不设置 alignment ,进度条中的数字会跑到左上⻆.这个怀疑是Qt本⾝的bug,暂时只能先使⽤alignment来⼿动调整下.
Calendar Widget
QCalendarWidget 表⽰⼀个"⽇历",形如
属性 | 说明 |
---|---|
selectDate | 当前选中的⽇期 |
minimumDate | 最⼩⽇期 |
maximumDate | 最⼤⽇期 |
firstDayOfWeek | 每周的第⼀天(也就是⽇历的第⼀列)是周⼏. |
gridVisible | 是否显⽰表格的边框 |
selectionMode | 是否允许选择⽇期 |
navigationBarVisible | ⽇历上⽅标题是否显⽰ |
horizontalHeaderFormat | ⽇历上⽅标题显⽰的⽇期格式 |
verticalHeaderFormat | ⽇历第⼀列显⽰的内容格式 |
dateEditEnabled | 是否允许⽇期被编辑 |
信号 | 说明 |
---|---|
selectionChanged(const QDate&) | 当选中的⽇期发⽣改变时发出 |
activated(const QDate&) | 当双击⼀个有效的⽇期或者按下回⻋键时发出,形参是⼀个QDate类型,保存了选中的⽇期 |
currentPageChanged(int, int) | 当年份⽉份改变时发出,形参表⽰改变后的新年份和⽉份 |
代码示例:获取选中的⽇期
1)在界⾯上创建⼀个 QCalendarWidget 和⼀个label
objectName 为 calendarWidget , label
2)给 QCalendarWidget 添加slot函数
void Widget::on_calendarWidget_selectionChanged()
{QDate date = ui->calendarWidget->selectedDate();qDebug() << date;
}
void Widget::on_calendarWidget_selectionChanged()
{QDate date = ui->calendarWidget->selectedDate();qDebug() << date;ui->label->setText(date.toString());
}
相关文章:
10.QT-显示类控件|LCD Number|ProgressBar|Calendar Widget(C++)
LCD Number QLCDNumer 是⼀个专⻔⽤来显⽰数字的控件.类似于"⽼式计算器"的效果 属性说明intValueQLCDNumber 显⽰的数字值(int).valueQLCDNumber 显⽰的数字值(double).和intValue是联动的.例如给value设为1.5,intValue的值就是2.另外,设置value和intValue的⽅法名…...
深入探索 Unix 与 Linux:历史、内核及发行版
引言 在当今的计算世界中,Unix 和 Linux 操作系统的影响力无处不在。从驱动互联网的服务器到我们口袋里的智能手机,再到无数嵌入式设备,它们的身影随处可见 1。这两个操作系统家族共享着丰富的历史和相似的设计哲学,但又各自走过…...
HCIP第三次作业
一、实验要求 1,R5为ISP,其上只能配置IP地址;R4作为企业边界路由器, 出口公网地址需要通过PPP协议获取,并进行chap认证 2整个0SPF环境IP基于172.16.0.0/16划分; 3所有设备均可访问R5的环回; 4减少LSA的更新量,加快收敛…...
Linux 入门:基础开发工具(下)git,cgdb操作指南
目录 一.进度条 一).补充:回车与换行 二).行缓冲区 三).进度条代码 二.版本控制器Git 一).Git 安装与配置 二).创建仓库 三).开始操作 1.简单流程 2.配置公钥 1).身份…...
【上位机——MFC】消息映射机制
消息映射机制 Window消息分类消息映射机制的使用代码示例 MFC框架利用消息映射机制把消息、命令与它们的处理函数映射起来。具体实现方法是在每个能接收和处理消息的类中,定义一个消息和消息函数指针对照表,即消息映射表。 在不重写WindowProc虚函数的大…...
提交bug单时,应该说明哪些信息?
在提交 Bug 单时,为了让开发人员能够快速定位和解决问题,需要详细说明以下几方面信息: Bug 的基本信息 标题:简洁明了地概括 Bug 的主要问题,例如 “登录页面输入错误密码后提示信息不准确”。Bug 类型:明确…...
max31865典型电路
PT100读取有很多种方案,常用的惠斯通电桥,和专用IC max31865 。 电阻温度检测器(RTD)是一种阻值随温度变化的电阻。铂是最常见、精度最高的测温金属丝材料。铂RTD称为PT-RTD,镍、铜和其它金属亦可用来制造RTD。RTD具有较宽的测温范围&#x…...
【网工第6版】第4章 无线通信网
目录 ■ 移动通信与4G 5G技术 ▲ 移动通信发展 ▲ 移动通信制式 ▲ 移动通信技术标准 ▲ 4G标准 ▲ 4G关键技术 ◎ OFDMA ◎ 4G关键技术-MIMO ◎ 4G关键技术-SDR ◎ 4G关键技术-VolP ▲ 5G应用场景 ▲ 5G两种组网模式 ▲ 5G关键技术 ■ CDMA计算 ■ WLAN通信技术…...
辅助函数构造题目(缓慢更新,遇到更道)
题1...
图论基础:图存+记忆化搜索
图的储存 储存图有很多种方式,在此介绍两种:邻接数组,邻接表 第一种虽然简单,但访问的时间和空间花销过大,因此第二种最为常见。 让我们分别看看它们是什么 在介绍之前,我们先解释一下此处说的“图”是什…...
使用docker任意系统编译opengauss
使用docker任意系统编译opengauss 本人使用开发机器为ubuntu系统,不在官方推荐的编译系统内。但是不想为了开发opengauss重装系统。所以采用docker进行编译。 代码拉取 本人是在/home/yuyang/Documents/opengauss目录下进行操作。 先获取源代码:git clone https:/…...
JavaScript 一维数组转二维数组
题目描述: <script>const num [1,2,3,4]const out (function(num,m,n){if(num.length ! m*n){return []}const newarr []for(let i 0;i<m;i){newarr.push(num.slice(i*n,(i1)*n))}return newarr})(num,2,2)console.log(out)</script>不使用Stri…...
C#进阶学习(八)常见的泛型数据结构类(3)SortedDictionary<TKey, TValue>与SortedList<TKey, TValue>
目录 关于默认的排序可以看这篇文章的第二点中关于排序的部分: 一、SortedDictionary 1. 核心特性 2. 常用方法和属性 二、SortedList 1. 核心特性 2. 常用方法和属性 三、关于TryGetValue(TKey key, out TValue value) 方法的详细说明 (一&…...
运维侠职场日记9:用DeepSeek三天通关详解自动化操作pdf批量提取PDF文字将PDF转Word文档(附上脚本代码)
一. 痛点 运维侠小白想将pdf文档转换成word文档,但是,wps等等这些软件的转换功能都是要付费,开通会员,这该怎么办?听说python也有这个功能于是迫不及待想学… 学会基础,学习的乐趣一点点积累 基础学习成本低,掌握所需的技能要求也少,学会一两行代码,看着输出,心理慢…...
热门算法面试题第19天|Leetcode39. 组合总和40.组合总和II131.分割回文串
39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 ta…...
IDEA连接达梦数据库
1. 参考在IDEA中连接达梦数据库:详细配置指南_idea连接达梦数据库-CSDN博客 . jdbc:dm://127.0.0.1:5236?schemaSALES...
React Router V7使用详解
1,安装 React Router是React生态系统中最流行的路由解决方案,它允许开发者在单页应用的不同页面之间进行切换,而不需要重新加载整个页面,React Router与React框架深度集成,使得开发者在单页面应用中进行页面切换时变得轻而易举。 作为官方推荐的路由解决方案,React Rou…...
国际数据加密算法(IDEA)详解
以下是修正后的准确版本,已解决原文中的术语、符号及技术细节问题: 国际数据加密算法(IDEA) IDEA是一种分组加密算法,由Xuejia Lai(来学嘉)和James Massey于1990年设计。IDEA使用128位密钥对64位明文分组进行加密,经过8轮迭代运算后生成64位密文分组。其安全性基于…...
2025年4月19日-米哈游春招笔试题-第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 魔法网格变换术 问题描述 在魔法学院,卢小姐正在研究一种特殊的魔法网格变换术。这种魔法作用于一个 n n n...
基于STM32串口通信
基于STM32串口通信 一、串口简介 串口,也称为串行接口或串行通信接口(通常指COM接口),是一种采用串行通信方式的扩展接口。它实现了数据一位一位地顺序传送,具有通信线路简单、成本低但传送速度慢的特点。 只要一对传…...
即梦AI与可灵AI视频生成功能对比分分析
一、核心功能与特点对比 维度可灵AI(快手旗下)即梦AI(字节跳动旗下)视频生成能力✅ 支持最长3分钟视频生成(通过续写功能)✅ 1080p分辨率、30fps帧率✅ 物理模拟(流体运动、重力效果࿰…...
【任务调度】Quartz入门
Quartz 入门 代码仓库地址: GitHub:chenmeng-test-demos/demo8-task at master cmty256/chenmeng-test-demosGitee:demo8-task chenmeng/chenmeng-test-demos - 码云 - 开源中国 基本介绍 Quartz 是一个开源的作业调度框架,它完…...
【网络编程】从零开始彻底了解网络编程(二)
本篇博客给大家带来的是网络编程的知识点,. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快乐顺便进步 1. …...
常见浏览器 WebDriver 驱动下载
以下是常见浏览器 WebDriver 驱动的下载地址及注意事项,综合多个可靠来源整理而成: 一、Chrome 浏览器(ChromeDriver) 官方下载地址 http://chromedriver.storage.googleapis.com/index.html • • 版本匹配:需与 Chro…...
【每日八股】复习计算机网络 Day3:TCP 协议的其他相关问题
文章目录 昨日内容复习TCP 的四次挥手?TCP 为什么要四次挥手?在客户端处于 FIN_WAIT_2 状态时,如果此时收到了乱序的来自服务端的 FIN 报文,客户端会如何处理?何时进入 TIME_WAIT 状态?TCP 四次挥手丢了怎么…...
大模型在胆管结石(无胆管炎或胆囊炎)预测及治疗方案制定中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、胆管结石相关理论基础 2.1 胆管结石概述 2.2 临床表现与诊断方法 2.3 传统治疗方法 三、大模型技术原理与应用优势 3.1 大模型基本原理 3.2 在医疗领域的应用潜力 3.3 用于胆管结石预测的可…...
LeetCode第159题_至多包含两个不同字符的最长子串
LeetCode 第159题:至多包含两个不同字符的最长子串 题目描述 给定一个字符串 s,找出 至多 包含两个不同字符的最长子串 t,并返回该子串的长度。 难度 中等 题目链接 点击在LeetCode中查看题目 示例 示例 1: 输入: s &qu…...
PG CTE 递归 SQL 翻译为 达梦版本
文章目录 PG SQLDM SQL总结 PG SQL with recursive result as (select res_id,phy_res_code,res_name from tbl_res where parent_res_id (select res_id from tbl_res where phy_res_code org96000#20211203155858) and res_type_id 1 union all select t1.res_id, t1.p…...
JavaScript 位掩码常量教程
JavaScript 位掩码常量教程 位掩码(Bitmask)是一种高效使用内存的技术,在JavaScript中可以用来存储和操作多个布尔值标志。下面我将为您介绍位掩码的基本概念、应用场景以及实践示例。 什么是位掩码常量? 位掩码利用二进制位&a…...
Linux守护进程
一、相关概念 QQ邮箱关于三种协议的解释:SMTP/IMAP服务 1.SMTP协议 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种用于发送电子邮件的互联网标准。它在TCP/IP协议族中,通常使用25端口进行通…...
Python多进程并发编程:深入理解Lock与Semaphore的实战应用与避坑指南
引言 在多进程并发编程中,资源竞争问题如同“隐形炸弹”,稍有不慎就会导致数据不一致或程序崩溃。无论是银行转账的余额错误,还是火车票超卖,其根源都在于共享资源的无序访问。如何安全高效地管理这些资源?Python中的锁…...
mysql的5.7版本与8.0版本的差异与兼容性
MySQL 5.7 和 8.0 是两个重要的版本,它们在性能、功能、安全性等方面都有显著的改进,同时也存在一些兼容性问题。以下是具体的改进点和兼容性问题: 一、MySQL 8.0 的改进点 性能提升 优化器改进:MySQL 8.0 对查询优化器进行了重大…...
【Rust 精进之路之第4篇-数据基石·上】标量类型:整数、浮点数、布尔与字符的精妙之处
系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:构成万物的“原子”——标量类型 在上一篇文章【变量观】中,我们深入探讨了 Rust 如何通过 let、mut、const、static 和 Shadowing 来管理变量绑定,并理解了其背后对安全性…...
LangChain4j模型参数配置全解析:释放大语言模型的真正潜力
LangChain4j模型参数配置全解析:释放大语言模型的真正潜力 前言 在大语言模型应用开发中,参数配置是连接算法理论与工程实践的关键桥梁。合理的参数设置能让模型输出更精准、响应更高效,而错误的配置可能导致成本激增或业务逻辑失效。本文将…...
【深度学习入门_NLP自然语言处理】序章
本部分开始深度学习第二大部分NLP章节学习,找了好多资料,终于明确NLP的学习目标了,介于工作之余学习综合考量,还是决定以视频学习为主后期自主实践为主吧。 分享一个总图,其实在定位的时候很迷茫,单各章节…...
计算机组成原理笔记(十六)——4.1基本算术运算的实现
计算机中最基本的算术运算是加法运算,加、减、乘、除运算最终都可以归结为加法运算。 4.1.1加法器 一、加法器的基本单元 加法器的核心单元是 全加器(Full Adder, FA),而所有加法器都由 半加器(Half Adder, HA&…...
AI日报 - 2025年04月21日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | O3模型性能引热议,Rich Sutton提出「体验时代」新范式,自递归AI构建仍存挑战。 新模型如O3展示高IQ,但AGI定义与实现路径讨论加剧,强调自主生成数据与体验学习。 ▎&…...
基于Python的推荐算法的电影推荐系统的设计
标题:基于Python的推荐算法的电影推荐系统的设计与实现 内容:1.摘要 本文围绕基于Python的推荐算法的电影推荐系统展开研究。背景在于随着电影数量的急剧增加,用户在海量电影中找到符合自身喜好的影片变得困难。目的是设计并实现一个高效准确的电影推荐系统&#x…...
【perf】perf工具的使用生成火焰图
文章目录 1. What is perf?2. perf使用2.1 perf的子工具集2.2 常用指令perf list指令格式参数perf中事件分类使用示例 perf stat指令格式参数 perf top指令格式参数交互式界面操作使用示例 perf record指令格式参数使用示例 perf report指令格式参数交互式界面操作使用示例 pe…...
Sentinel源码—6.熔断降级和数据统计的实现一
大纲 1.DegradeSlot实现熔断降级的原理与源码 2.Sentinel数据指标统计的滑动窗口算法 1.DegradeSlot实现熔断降级的原理与源码 (1)熔断降级规则DegradeRule的配置Demo (2)注册熔断降级监听器和加载熔断降级规则 (3)DegradeSlot根据熔断降级规则对请求进行验证 (1)熔断降级…...
C语言自增自减题目
一、题目引入 二、运行结果 三、题目分析 这一题中 i的初始值是2 所以执行case2中的命令i-- 表达式的值此时是2 i--完了之后i最后的值是1 由于是switch没有break 就会往下贯穿 直到遇到break为止 case3里面 i 表达式的值是2 i完了之后i的值也是2 综上所述 i的值最终的值是…...
paddleocr出现: [WinError 127] 找不到指定的程序解决办法
paddleocr是一个由百度开发开源的OCR(光学字符识别)工具库。它支持多种语言的文本识别,包括中文、英文、日文等,并具备高效的文本检测和识别能力。paddleocr基于PaddlePaddle深度学习框架开发,提供了丰富的预处理、模型…...
c++STL——list的使用和模拟实现
文章目录 list的使用和模拟实现使用部分list的结构声名默认成员函数initializer_list容量和访问操作修改操作其他接口list的迭代器迭代器的种类 list的模拟实现明确基本结构预处理函数迭代器部分(重点)思路进一步考虑最终代码operator->的重载总结 begin和end访问接口修改操…...
交换机端口安全
端口安全 端口安全(PortSecurity)通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC、安全静态MAC和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。 1、安全mac地址分类 安全动态MAC地址…...
【Oracle专栏】Oracle中的虚拟列
Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 在EXP方式导出时,发现 出现如下提示 EXP-00107: virtual column 不支持,因此采用expdp方式导出。于是本文针对oracle虚拟列进行简单介绍。 2. 相…...
shell 正则表达式与文本处理器
目录 前言 一、正则表达式 (一)定义与用途 (二)基础正则表达式 (三)基础正则表达式元字符 (四)扩展正则表达式 二、文本处理器:Shell 编程的得力助手 ࿰…...
ZYNQ笔记(九):定时器中断
版本:Vivado2020.2(Vitis) 任务:使用定时器 (私有定时器) 中断 实现 LED(PS端) 定时1s亮灭翻转 目录 一、介绍 二、硬件设计 三、软件设计 四、效果 一、介绍 Zynq系列是Xilinx(现为AMD)推出的集成了AR…...
idea中运行groovy程序报错
我的项目是使用的 gradle 构建的。 在 idea 中运行Groovy的面向对象程序报错如下: Execution failed for task :Person.main(). > Process command G:/Program Files/jdk-17/jdk-17.0.12/bin/java.exe finished with non-zero exit value 1* Try: Run with --s…...
具身智能零碎知识点(四):联合嵌入预测架构(JEPAs)详解
联合嵌入预测架构(JEPAs)详解 联合嵌入预测架构(JEPAs)详解一、核心思想二、技术原理1. 核心组件2. 训练目标 三、与传统方法的对比四、具体实例例1:视频预测(如Meta的I-JEPA)例2:多…...
linux 搭建 dvwa 渗透测试环境
linux 安装 dvwa 1、分为4个部分,搭建dvwa渗透测试环境2、安装centos 7.63、安装apache http server4、安装mysql5、安装php6、运行dvwa 1、分为4个部分,搭建dvwa渗透测试环境 本文基于centos 7.6 搭建 dvwa 渗透测试环境 安装一个linux系统安装apache…...