【QT:控件】
目录
控件状态:编辑
geometry :
window frame
windowlcon:
qrc机制
qrc的使用方式:
window opacity
cursor
font:
ToolTip
focusPolicy:
styleSheet:
按钮类控件:
PushButton:
给按钮添加图标:
给按钮添加快捷键
Radio Button:
checkbox:
显示类控件:
编辑文本
显示图片:编辑
LCD Number:
ProgressBar:
calendar:
输入类控件:
Line Edit:
Text Edit:
Combo Box:
Date Edit&Time Edit
Slider:
多元素控件:
List Widget:
TableWidget:
容器类控件:
QGroupBox分组框:
Tab Widget:
布局管理器:
垂直布局:
水平管理器:
网格布局:编辑
表单布局:
控件总结:
QT中提供了很多内置的控件,如:按钮,文本框,单选按钮,复选按钮等控件。
Widget是这些控件的统称。很早的时期开发GUI没有控件的概念,界面上显示的东西全都是“画”出来的,为了提高开发效率,引入控件的概念。
QT中的控件可以对应着HTML中的标签理解,HTML中不同的标签能体现出不同的效果。
QT中的各种控件都是继承QWidget类
控件状态:

在QT Creator的右侧有QWidget的属性,其中enabled描述了控件是否是“可用”状态,与之对应的概念:禁用状态。禁用状态:该控件不能接收任何用户的输入事件,且外观上往往是灰色的,如果一个控件被禁用,那它的子元素也会被禁用。
isEnabled | 获取控件的可用状态 |
setEnabled | 设置控件是否可用。True表示可用,False表示禁用 |
实例:
在同一个界面中,要求不同的控件objectName也是必须不同的,后续可以通过Ui->objectNmae方式获取到对应的控件对象
当前自动生成的ObjectNmae的名字根据控件类型+下划线+数字的方式
clicked信号有两个版本,无参数的,和一个Bool参数的
通过按钮来切换可用状态,实例:
geometry :
表示当前控件的位置和尺寸
geometry | 获取控件的位置和尺寸,返回的结果是一个QRect(矩形),包含了x,y,width,height |
setGeometry(QRect) setGeometry(int x,int y,int width,int height) | 设置控件的位置和尺寸,可以直接设置一个QRect,也可以分四个属性单独设置 |
QPoint表示一个点,QRect表示一个矩形,属于小对象,占用的空间小。
实例:
window frame
在QT中,有的API函数以widget本体的左上角为原点,不考虑window frame,如:geometry()、setGeometry()。有的API函数的位置信息以window frame左上角为原点,如:frameGeometry(),setFrameGeometry()。
windowlcon:
表示窗口图标
windowlcon() | 获取到控件的窗口图标,返回Qlcon(表示一个图标)对象 |
setWindowlcon(const Qlcon& icon) | 设置控件的窗口图标 |
这俩api都是针对顶层窗口使用,对窗口内的控件没有效果
Qlcon是一个比较小的对象,创建之后需要设置到某个QWidget里面,Qlcon对象本身是否释放不影响图标的显示,此外,Qlcon也不支持对象树,无法给它执行父对象,
实例:
注:
- 路径不能带中文
- 路径分隔符使用/
但引用绝对路径的方式不科学的,因为无法确保开发机上的路径和用户电脑上图片的路径完全一致,所以这里使用相对路径更靠谱
qrc机制
- 确保你的图片所在路径在目标用户机器上存在
- 确保图片不会被用户误删
原理:给QT项目引入一个额外的xml文件(后缀名用.qrc表示)在这个xml中吧要使用的图片资源导入进来,并在xml中进行记录。QT在编译项目的时候会根据qrc中描述的图片信息找到图片内容,并提取图片的二进制数据,把这些二进制数据转成C++代码,最终编译到exe中
qrc缺点:无法导入太大的资源文件
qrc的使用方式:
- 在项目中创建qrc,不可以带中文和特殊符号
把文件导入到qrc中
- 先创建一个“前缀”(虚拟目录)
- 把图片导入到资源目录中
注:导入图片时,需要保证导入的图片必须在resource的同级目录下,或者它的子目录中
创建的前缀名叫什么代码中就写什么,当代码需要访问qrc中的文件时,需要在路径上带有前缀
window opacity
调整窗口的透明度。
代码实例:
为什么窗口的不透明度变化并非精确?
浮点数在内存中的存储遵守IEEE 754标准,该标准规定了浮点数要使用二进制的科学计数法方式表示。把浮点数分为三部分:符号位、有效数字、指数部分。有效数字使用二进制表示,且都是小于0的小数部分。第一个有效数字位表示0.5,第二个有效数字位表示0.25,第三个有效数字位表示0.125,例如二进制中小数点后的101,则可以表示0.625(0.5+0.125),但象0.1这样的小数无法精确的表示,只能说无限接近。所以对于float和double的值的比较需要我们使用做差的方式通过比较差的绝对值与误差范围进行比较。采用这种方式的优点:运算速度快,占用空间小,缺点:无法精确表示小数。
cursor
cursor() | 获取到当前widget的cursor属性,返回QCursor对象。当鼠标悬停在该widget上时,就会显示出对应的形状 |
setCursor(const QCursor& cursor) | 设置该widget光标的形状,仅在鼠标停留在该widget上生效 |
QGuiApplication::setOverrideCursor(const QCursor& cursor) | 设置全局光标的形状,对整个程序中的所有widget都会生效,覆盖上面的setCursor设置的内容 |
使用实例:
QT可以自定义图片设置光标,同样使用qrc的机制进行设置
font:
font() | 获取当前widget的字体信息,返回QFont对象 |
setFont(const QFont& font) | 设置当前widget的字体信息 |
QFont:
实例:
ToolTip
一个GUI程序界面复杂,通过向将鼠标悬停弹出提示信息
setToolTip | 设置toolTip,鼠标悬停在该Widget上时会有提示说明 |
setToolTipDuring | 设置toolTip提示的时间,单位ms,时间到后toolTip自动消失 |
这里设置也可以在控件这里设置,不用代码设置
focusPolicy:
focusPolicy() | 获取widget的focusPolicy,返回Qt::FocusPolicy |
setFocusPolicy(Qt::FocusPolicy) | 设置widget的focusPolicy |
通过控件设置焦点
styleSheet:
通过CSS设置widget样式
实例:
按钮类控件:
PushButton:
给按钮添加图标:
给按钮添加快捷键
- 将图片资源添加到qrc中
- 设置按钮
- 设置方向按钮的槽函数
- 设置快捷键,程序一启动,快捷键有效
快捷键默认是连发的,鼠标点击不是,想让鼠标连发可以设置:setAutoRepeat()函数即可连发
Radio Button:
QRadioButton是单选按钮,属性如下:
checkable | 是否能选中 |
checked | 是否已经被选中,checkable是checked的前提条件 |
autoExclusive | 是否排它 选中一个按钮后是否会取消其他按钮的选中 |
radiobutton默认是排他的,当需要“多组”单选按钮时可以选择使用QButtonGroup类可以针对单选按钮进行分组
checkbox:
QCheckbox表示复选按钮,可以允许选中多个。
显示类控件:
编辑文本
显示图片:

将图片自动拉伸填满窗口
但这里存在一个BUG,窗口拉伸后,图片不会跟着填满
所以这里需要引用事件。
在QT中表示用户操作有两种概念:1.信号 2.事件。当用户拖拽修改窗口大小时,就会触发resize事件,而类似与resize事件是连续变化的,把窗口尺寸从A拖到B这个过程中,会触发一系列的resizeEvent,此时就可以通过resizeEvent完成目标功能。让Widget窗口类重写父类(QWidget)的resizeEvent虚函数,在鼠标拖动窗口的过程中,该函数会被反复调用
Qlabel的文本对齐:
setAlignment(Qt::Alignment) | 设置文本对齐 |
setWordWrap(bool) | 设置自动换行 |
setIndent(int) | 设置缩减(此处设置缩进,即使换行后续的行也会产生缩进) |
setMargin(int) | 设置边距 |
QLable设置伙伴:
Qt中,QLabel中写的文本是指定“快捷键”的,此处快捷键的规则功能上要比QPushButton弱很多,在文本上,需要使用&和一个字符来表示快捷键,例如&A就需要通过键盘上的Alt+A触发这个快捷键,绑定伙伴后就可以通过快捷键触发选中对应的按钮
LCD Number:
intValue | QLCDNumber显示的数字值 |
value | QLCDNumber显示的数字值,和 |
digitCount | 显示几位数字 |
mode | 数字显示形式 |
segmentStyle | 设置显示风格 |
smallDecimalpoint | 设置比较小的小数点 |
倒计时实例:
为什么下面代码没有显示?会先执行widget的构造函数,构造函数执行
完毕后才会执行后续的显示操作
想法1:在构造函数中创建一个线程,在新线程中执行上述代码。
显然方法是不可行的,因为QT中界面有一个专门的线程负责维护更新的(主线程)
对GUI来说,内部包含了很多隐藏状态,QT为了保证修改界面的过程中,线程安全不受影响的,所以QT禁止了其他线程直接修改界面,同时QT为了确保线程安全,要求所有的对界面的修改操作必须在主线程中完成。
对于Qt的槽函数来讲,默认情况下,槽函数都是由主线程调用的,在槽函数中修改界面没有任何问题
ProgressBar:
mininum | 进度条最小值 |
maxinum | 进度条最大值 |
value | 进度条当前值 |
textVisible | 进度条数字是否可见 |
orientation | 是否朝反方向增长进度 |
textDirection | 文本的朝向 |
alignment | 文本在进度条的对齐方式 |
format | 展示的数字格式 |
创建一个进度条:
calendar:
selectDate | 当前选中的日期 |
minimumDate | 最小日期 |
maximumDate | 最大日期 |
firstDayOfWeek | 每周的第一天 |
gridVisible | 是否显示表格的边框 |
selectionMode | 是否允许选择日期 |
dateEditEnabled | 是否允许日期被编辑 |
navigationBarVisible | 日历上方标题是否显示 |
输入类控件:
Line Edit:
text | 输入框中的文本 |
inputMask | 输入内容格式约束 |
maxLength | 最大长度 |
frame | 是否添加边框 |
echoMode | 显示方式 |
clearButtonEnabled | 当输入框中有内容时,右侧会出现删除的按钮 |
各函数的使用实例:
基于正则表达式的验证
不显示密码两次验证:
切换显示密码状态:
Text Edit:
表示多行输入框,也是一个富文本&markdown编辑器,并且能够在内容超出编辑范围时自动提供滚条。QTextEdit不仅能表示纯文本还可以表示html和markdown,QPlainTextEdit只能表示纯文本
markdown | 支持markdown格式,能够自动的对markdown文本进行渲染成html |
html | 可以支持大部分html标签 |
placeHolderText | 输入框为空时提示内容 |
readOnly | 是否是只读的 |
acceptRichText | 是否接收富文本内容 |
演示QTextEdit信号
Combo Box:
表示下拉框
addltem(const QString&) | 添加一个条目 |
currentIndex() | 获取当前条目的下标 |
currentText() | 获取当前条目的文本内容 |
activated(int) activated(const QString& text) | 当用户选择了一个选项时发出。这时相当于用户点开下拉框并且鼠标滑过某个选项,还没有做出选择 |
currentIndexChanged(int) currentIndexChanged(const QString& text) | 当选项改变时发出 此时用户已经明确选择了一个选项,用户操作或者通过程序操作都会触发这个信号 |
editTextChanged(const QString& text) | 当编辑框中的文本改变时发出(editable为true时有效) |
使用这个下拉菜单模拟点餐:
除了用代码写,也可以跳转到Ui界面,右击下拉框
spin box(微调框)
带有按钮的的输入框,可以通过按钮来修改数值大小
value | 存储的数值 |
singleStep | 按下按钮变化的步长 |
displayInteger | 数字的进制 |
wraping | 是否允许换行 |
…… |
textChanged(QString) | 微调框的文本发生变化时会触发,参数QString带有前缀和后缀 |
valueChanged(int) | 微调框的文本发生改变时会触发,参数int 表示当前值 |
基于麦当劳点餐的模拟实现按钮微调实例:
Date Edit&Time Edit
Qt::LocalTime:显示本地时间,Qt::UTC:显示协调世界时
QDateTime提供了两个函数:daysTo计算两个时间的日期的差值,secsTo计算两个时间的秒数的差值
dateChanged(QDate) | 日期改变时触发 |
timeChanged(QTime) | 时间改变时触发 |
dateTimeChanged(QDateTime) | 时间日期任意一个改变时触发 |
计算两个日期的差值:
Dial:
通过旋钮来调节窗口透明度:
Slider:
表示一个滑动条
valueChanged(int) | 数值改变时触发 |
rangeChanged(int ,int) | 范围变化时触发 |
在窗口上放入两个滑动条,滑动两个滑动条来调节窗口大小,代码实例:
自定义快捷键,通过快捷键操作滑动条:
多元素控件:
QListWidget | 列表 |
QListView | |
QTableWidget | 表格 |
QTableView | |
QTreeWidget | 树形 |
QTreeView |
不难发现上面的共同点,后缀都是一样的,xxView是更底层的实现, xxWidget是基于xxView封装而来的,此处的xxView是MV结构的一种典型实现,MVC是软件开发中经典的软件结构的组织形式
List Widget:
可以纵向显示列表
current | 当前选中的是第几行 |
count | 一共有多少行数 |
sortingEnabled | 能否允许排序 |
isWrapping | 能否允许换行 |
itemAlignment | 元素的对齐方式 |
selectRectVisible | 被选中的元素矩形是否可见 |
spacing | 元素之间的间隔 |
listwidget添加元素可以通过代码添加,也可以通过图形化界面添加(右击QListWidget选择编辑选项)如果初始化内容固定,两种方法都可,如果内容不固定,需要通过读取网络或者文件构造数据就只能使用代码来添加
TableWidget:
Tree Widget:
表示的是一个树形控件,里面的每个元素都是一个QTreeWidegetItem,每个QTreeWidegetItem可以包含多个文本和图标,每个文本/图标为一个列,可以给QTreeWidget设置顶层节点(顶层节点可以多个),再给顶层节点添加子节点,从而构成树形结构
clear | 清空所有子节点 |
addTopLevelItem(QTreeWidgetItem* item) | 新增顶层节点 |
topLeventItem(int index) | 获取指定下标的顶层节点 |
topLevelItemCount() | 获取顶层节点个数 |
currentItem() | 获取到当前选中的节点 |
代码实例:
容器类控件:
QGroupBox分组框:
让界面更加清晰明了,效果如图:
Tab Widget:
实现一个带有标签的控件,可以往里面添加一些widget,进一步通过标签页来切换
tabPositon | 标签页所在的位置 |
currentIndex | 当前选中了第几个标签页 |
currentTabText | 当前选中标签页的文本 |
currentTabName | 当前选中标签页的名字 |
currentTablcon | 当前选中的标签页的图标 |
movable | 标签页是否可以移动 |
创建一个程序,带有tablewidget作为标签页,提供两个按钮,分别创建新的标签页和关闭当前选中的标签页,当切换标签页时可以感知变化
布局管理器:
在此之前对控件的布局都是手动的,但是手动调整布局不科学,所以使用布局管理器可以让布局更科学,窗口大小自适应。
垂直布局:
使用QVBoxLayout表示垂直的布局管理器,Layout只是用于界面布局,并没有提供信号
每个widget只能设置一个布局管理器
如果在代码中创建layout只是创建了layout,而在qtdesinger中创建的layout,是先创建了一个widget然后再在这个新的widget中添加一个layout。
水平管理器:
布局管理器也可以嵌套使用,如下:
网格布局:

布局管理局的尺寸都是均等的,需要创建尺寸大小不一致的控件就需要通过拉伸系数来设置
拉伸系数设为0表示不参与拉伸,拉伸参数固定
表单布局:
这种布局多用于让用户填写信息的场景。
Spacer:
使用布局管理器时,有时需要在控件之间添加一段空白,可以使用QSpaceItem来表示
控件总结:
每个控件都是可扩展的,且每个控件都对应这Qt内置的一个类,可以基于这个类,继承出自定义的类,在自定义的子类中,也可以添加更多的属性和方法
相关文章:
【QT:控件】
目录 控件状态:编辑 geometry : window frame windowlcon: qrc机制 qrc的使用方式: window opacity cursor font: ToolTip focusPolicy: styleSheet: 按钮类控件: PushButton: 给按钮添加图标: 给按钮添加快捷键…...
掌握xtquant:实时行情订阅与数据处理的实战指南
掌握xtquant:实时行情订阅与数据处理的实战指南 🚀量化软件开通 🚀量化实战教程 在量化交易领域,实时行情的获取和处理是构建有效交易策略的关键。本文将深入探讨如何使用xtquant库进行实时行情的订阅与数据处理,帮…...
解决 Nginx 访问 /root/下 403 Forbidden 问题
文章目录 解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Nginx 配置 可能的原因/root 目录权限问题SELinux 限制 解决方案方案 1:移动文件到 /data/或 /var/www/(推荐方案)方案 2:修改 /root 目录权限(不推荐)方案…...
免费实用工具,wps/office/永中通吃!
很多小伙伴在使用办公套件的过程中,往往会选择安装一些插件来提高工作效率。在众多的插件中,Excel和Word的插件非常常见,能够帮助用户进行数据分析、文档处理、格式美化等操作。然而,支持PPT(PowerPoint)的…...
Bash环境定制git分支提示符暨JDK版本切换脚本
一、在Bash提示符中显示Git分支 实现方法 编辑Bash配置文件 打开 ~/.bashrc 文件,添加以下代码: # 显示当前 Git 分支 parse_git_branch() {git branch 2>/dev/null | sed -e /^[^*]/d -e s/* \(.*\)/(\1)/ } export PS1\[\033[01;35m\]$PPX\[\033[0…...
使用fasterwhisper加速
背景 最近申请到一张8卡的gpu 机器用来验证音频转文本,发现whisper的处理速度很慢,于是有了下面的几种验证方法 配置信息 8张A30 第一次尝试 使用whisper对一个95M 的mp4文件进行解码 import time import whisperdef transcribe_audio(audio_path…...
IntelliJ IDEA 调试技巧指南
在日常开发中,调试是不可或缺的一部分。掌握调试工具的使用可以让我们更高效地定位和解决问题。本文将介绍一些在 IntelliJ IDEA 中常用的调试技巧,希望能帮助你在开发过程中更顺畅地解决问题。 1. 方法断点:快速定位实现类 方法断点可以帮…...
蓝桥杯Python赛道备赛——Day5:算术(一)(数学问题)
笔者计划用两期博客对蓝桥杯中所涉及的算术(数学问题)进行解释,本期博客包括:GCD(最大公约数)、LCM(最小公倍数)、质数判断、埃氏筛法、线性筛法(欧拉筛)和质…...
Android的消息机制
Android的消息机制-从入门到精通 前言Android消息机制概述Android 的消息机制分析ThreadLocal 的工作原理消息队列的工作原理Looper的工作原理Handler的工作原理 主线程的消息循环 前言 作为开发者,提及Android的消息机制,必然绕不开Handler,…...
Three.js 阴影 (Shadow) 知识点整理
阴影主要由 castShadow 和 receiveShadow 控制,并通过不同类型的光源 (DirectionalLight、SpotLight、PointLight) 生成。我们将系统地整理与阴影相关的知识点。 1️⃣ 基础概念 castShadow 🎭:物体是否投射阴影。receiveShadow Ἵ…...
从C语言开始的C++编程生活(1)
前言 本系列文章承接C语言的学习,需要有C语言的基础才能学会哦。 第1篇主要讲的是有关于C的命名空间、输入和输出。 C才起步,都很简单呢! 目录 前言 命名空间namespace 基本语法 作用 使用命名空间 域作用限定符 :: 基本语法 using n…...
【数据库】如何用索引优化查询性能
引言 在数据库查询中,索引是提升性能的关键工具。合理使用索引可以显著减少数据扫描量,加快查询速度。然而,索引的使用也需要谨慎,错误的索引策略可能导致性能下降甚至系统崩溃。本文将深入探讨如何通过索引优化查询性能…...
【Go每日一练】随机密码生成器
👻创作者:丶重明 👻创作时间:2025年3月17日 👻擅长领域:运维 目录 1.😶🌫️题目:随机密码生成器2.😶🌫️密码生成可用资源3.😶&…...
【QA】模板方法模式在Qt中有哪些应用?
在 Qt 框架中,模板方法模式(Template Method Pattern)被广泛应用于框架的设计中,通过定义算法骨架并允许子类在不改变结构的情况下重写部分步骤。以下是 Qt 中典型的应用场景及示例: 1. 事件处理(Event Ha…...
VSTO(C#)Excel开发13:实现定时器
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
Vue:单文件组件
Vue:单文件组件 1、 什么是单文件组件? 在传统的Vue开发里,我们接触的是非单文件组件,它们通常被定义在同一个HTML文件中,随着项目规模的扩大,代码会变得杂乱无章,维护起来极为困难。而单文件…...
网络编程---创建客户端和服务端以及协议包
一,创建客户端和服务端的思维导图 首先我们要知道客户端和服务端在网络中进行通信是依靠IP地址和端口号的,所以第一步就是创建一个套接字存储ip和port。通过套接字建立连接后通过read,write函数实现两者之间的交流(套接字的描述符…...
云安全相关博客阅读(四)
How we built Pingora, the proxy that connects Cloudflare to the Internet 基于 Rust 构建 Pingora,作为 Nginx 的替代方案; Nginx 作为常用代理服务,广泛应用于 CDN、WAF、Stream、Tunnel 等场景,是基础网络设施 然而&…...
靶场(十三)---小白心得思路分享---Levram
启程: 老样子开扫端口,22端口自动忽略,看到8000端口搭载着Gerapy服务 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 b9:bc:8f:01:3f:85:5d:f9…...
高级java每日一道面试题-2025年3月04日-微服务篇[Eureka篇]-Eureka是什么?
如果有遗漏,评论区告诉我进行补充 面试官: Eureka是什么? 我回答: 在Java高级面试中,关于Eureka的讨论通常会涵盖其基本概念、组件与架构、工作原理、高级特性以及与其他服务发现工具的比较等多个方面。以下是结合提供的内容对Eureka进行的详细解析和…...
Linux的根目录全知道
Linux的根目录(/)遵循文件系统层次结构标准(FHS),定义了各目录的用途。以下是主要目录及其功能的详细说明: 核心目录结构 /bin 作用:存放基础用户命令(所有用户可用)。示例:ls, cp, cat, bash等。注意:在部分系统中,/bin可能是/usr/bin的符号链接(通过usrmerge合并…...
嵌入式裸机设计--MCU常用裸机架构有哪些?
为什么是裸机设计 792125321入群学习更高效! 在MCU(微控制器单元)裸机开发中,我们常见的架构设计主要围绕如何高效管理资源和任务调度。认识这些开发方式,对我们开发一个小型项目来说及有好处! 下面介绍…...
基于FPGA频率、幅度、相位可调的任意函数发生器(DDS)实现
基于FPGA实现频率、幅度、相位可调的DDS 1 摘要 直接数字合成器( DDS ) 是一种通过生成数字形式的时变信号并进行数模转换来产生模拟波形(通常为正弦波)的方法,它通过数字方式直接合成信号,而不是通过模拟信号生成技术。DDS主要被应用于信号生成、通信系统中的本振、函…...
Rocky Linux 9.x 基于 kubeadm部署k8s 1.32
一、部署说明 1、主机操作系统说明 序号操作系统及版本备注1Rocky Linux release 9下载链接:https://mirrors.163.com/rocky/9.5/isos/x86_64/Rocky-9.5-x86_64-minimal.iso 2、主机硬件配置说明 作用IP地址操作系统配置关键组件k8s-master01192.168.234.51Rocky…...
linux入侵排查-综合日志分析
1.综合日志分析 1.掌握linux环境下系统日志的分析方法 2.掌握web访问日志的分析方法 3.掌握数据库日志的分析方法 4.掌握数据库日志的分析方法 5.熟悉linux中常用日志分析命令 实验环境 2.实验预设问题 1.定位攻击者ip地址 2.分析攻击者首次成功登录web管理后台的时间 …...
网络华为HCIA+HCIP 以太网链路聚合与交换机堆叠、集群
网络可靠性 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。网络的可靠性可以从单板、设备、链路多个层面实现。 单板可靠性 以S12700E-8为例,设备提供8个线路板槽位、4个交换网板槽位、2个主控板槽位、6个电源模块槽位、4个风扇…...
[原创](Modern C++)现代C++的关键性概念: 灵活多变的绑定: std::bind
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...
[QT]深入理解Qt中的信号与槽机制
文章目录 信号与槽1. 信号和槽概述信号的本质槽的本质说明 2. 信号和槽的使用2.1 连接信号和槽2.2 查看内置信号和槽2.3 通过 Qt Creator 生成信号槽代码 3. 自定义信号和槽3.1 基本语法3.2 带参数的信号和槽**示例1:重载信号槽****示例2:信号槽参数列表…...
电脑管家如何清理内存及垃圾,提升电脑性能
电脑在长时间使用后,常常会变得越来越卡顿,打开程序的速度变慢,甚至响应迟缓。这时,不少用户会选择使用电脑管家来进行内存清理和垃圾清理。那么,电脑管家是如何清理内存的?它又是如何清理垃圾的࿱…...
OpenCV图像处理:分割、合并、打码、组合与边界填充
引言 OpenCV是一个功能强大的计算机视觉库,广泛应用于图像处理、视频分析、物体检测等领域。本文将结合代码示例,详细介绍如何使用OpenCV进行图像的分割、合并、打码、组合以及边界填充等操作。 1. 图像的分割与合并 1.1 图像分割 在OpenCV中ÿ…...
游戏立项时期随笔记录(1)
模拟经营的项目还没有完全结束,这几天又有可能涉及到一个新项目。感想随笔记录一下,防止忘记。今天一天整理这个,搞得今天没时间看数学和AI。 在 Unity3D 游戏前端主程序的立项时期,核心目标是明确技术方向、评估可行性、搭建基础…...
C#入门学习记录(四)C#运算符详解:掌握算术与条件运算符的必备技巧+字符串拼接
一、运算符概述 运算符是程序进行数学运算、逻辑判断的核心工具,C#中的运算符分为: 算术运算符 → 数学计算( - * / %) 条件运算符 → 三目判断(?:) 关系运算符 → 比较大小(> < &#…...
DeepSeek 3FS 与 JuiceFS:架构与特性比较
近期,DeepSeek 开源了其文件系统 Fire-Flyer File System (3FS),使得文件系统这一有着 70 多年历时的“古老”的技术,又获得了各方的关注。在 AI 业务中,企业需要处理大量的文本、图像、视频等非结构化数据,还需要应对…...
汽车PKE无钥匙进入系统一键启动系统定义与原理
汽车智能钥匙(PKE无钥匙进入系统)一键启动介绍 系统定义与原理 汽车无钥匙进入系统,简称PKE(Passive Keyless Entry),该系统采用了RFID无线射频技术和车辆身份编码识别系统,率先应用小型化、小…...
【深度学习与大模型基础】第6章-对角矩阵,对称矩阵,正交矩阵
一、对角矩阵 对角矩阵(Diagonal Matrix)是一种特殊的方阵,其非对角线上的元素均为零,只有对角线上的元素可能非零。具体来说,对于一个 nn的矩阵 A[],如果满足 则 AA 称为对角矩阵。对角矩阵通常表示为&am…...
go语言中切片的长度和容量详解
Go 语言中,切片(Slice) 是一种动态数组,它的核心特性由 长度(Length) 和 容量(Capacity) 共同定义。这两个概念是操作切片时的关键,理解它们的含义和区别能帮助你高效管理内存并避免常见错误。 一、长度(Length) 定义:切片的长度表示当前包含的实际元素个数,即可以…...
在Vue3中使用$router.push方法进行路由跳转时,如何传递多个路径参数?
在 Vue 3 里,你可以借助 $router.push 方法进行路由跳转,同时传递多个路径参数。下面为你详细介绍具体实现方式: 1. 路由配置 首先,要在路由配置中定义好需要的路径参数。示例如下: import { createRouter, createW…...
C语言学习笔记(第三部份)
说明:由于所有内容放在一个md文件中会非常卡顿,本文件将接续C_1.md文件的第三部分 整型存储和大小端 引例: int main(void) {// printf("%d\n", SnAdda(2, 5));// PrintDaffodilNum(10000);// PrintRhombus(3);int i 0;int arr[…...
软考 中级软件设计师 考点知识点笔记总结 day05
文章目录 4、栈和队列4.1、栈的定义4.2、队列定义 5、串、数组、矩阵和广义表5.1、串5.2、 数组5.3、稀疏矩阵5.4、广义表 4、栈和队列 4.1、栈的定义 线性表是具有相同数据类型的n个数据元素的有限序列, n为表厂。n0时 线性表是一个空表 L (a1,a2,a3…...
【Linux】system V消息队列,信号量
🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.消息队列System V 消息队列接口 02.信号量System V 信号量接口 03.OS对system V ipc的管理消息队列管理结构共享内存管理结构信号量管理结构 01.消息队列 消息队列提供了一个…...
【新能源汽车“心脏”赋能:三电系统研发、测试与应用匹配的恒压恒流源技术秘籍】
新能源汽车“心脏”赋能:三电系统研发、测试与应用匹配的恒压恒流源技术秘籍 在新能源汽车蓬勃发展的浪潮中,三电系统(电池、电机、电控)无疑是其核心驱动力。而恒压源与恒流源,作为电源管理的关键要素,在…...
在 Vue.js 中使用递归组件:轻松处理嵌套数据结构
在开发前端应用时,我们经常会遇到需要处理嵌套数据结构的场景,比如树形菜单、评论列表、文件夹结构等。Vue.js 提供了一种优雅的方式来解决这类问题——递归组件。通过递归组件,我们可以轻松地渲染嵌套数据,并保持代码的简洁和可维…...
飞腾2000+/64核加固服务器
在当今信息化高速发展的时代,数据中心作为信息技术的核心支撑,其稳定性、安全性和高效性成为了各行各业关注的焦点。特别是在国防、金融、电信等关键领域,对服务器的性能、可靠性和安全性提出了前所未有的高要求。正是在这样的背景下…...
AutoMQ x OSS 的 Iceberg 数据入湖的最佳实践
背景 在数字化转型进程中,用户交互行为产生的多维度数据已成为企业的重要战略资产。以短视频平台为例,基于用户点赞事件的实时推荐算法能显著提升用户活跃度和平台粘性。这类实时数据主要通过 Apache Kafka 流处理平台进行传输,通过其扇出&a…...
深度学习大模型补充知识点
文章目录 VIT用途处理方法与CNN区别 多模态LLM:大语言模型预训练指令微调强化学习 总结 VIT ViT(Vision Transformer) 首次将 Transformer架构成功应用于计算机视觉领域(尤其是图像分类任务)。传统视觉任务主要依赖卷…...
定义模型生成数据表
1. 数据库配置 js import { Sequelize, DataTypes } from sequelize; // 创建一个 Sequelize 实例,连接到 SQLite 数据库。 export const sequelize new Sequelize(test, sa, "123456", { host: localhost, dialect: sqlite, storage: ./blog.db })…...
C++与C的基本不同
文章目录 变量定义规则1. 基本语法2. 初始化3. 作用域4. 存储类别 函数定义规则1. 基本语法2. 函数声明和定义3. 默认参数4. 内联函数 解析输出流void BluetoothA2DPSink::start(const char* name)class BluetoothA2DPSink : public BluetoothA2DPCommon C是在C语言基础上发展而…...
React19源码系列之createRoot的执行流程是怎么的?
2024年12月5日,react发布了react19版本。后面一段时间都将学习它的源码,并着手记录。 react官网:react19新特性 https://react.dev/blog/2024/12/05/react-19 在用vite创建react项目的使用,main.tsx主文件都会有以下代码。 //i…...
【CXX-Qt】1.5 使用CMake构建
在本示例中,我们将演示如何使用CMake将CXX-Qt代码集成到C应用程序中。Cargo将CXX-Qt代码构建为静态库,然后CMake将其链接到C可执行文件中。 我们首先需要修改项目结构,以分离项目的不同部分。 tutorial cpp qml rust将Rust项目移动到rust文…...
前端面试项目拷打
Axios相关 1.在Axios二次封装时,具体封装了哪些内容,如何处理请求拦截和响应拦截? axios二次封装的目的:为了统一处理请求和响应拦截器、错误处理、请求超时、请求头配置等,提高代码可维护性和复用性。 首先创建axios…...