【Qt】QWidget核心属性相关API

目录

一. enabled——是否可用

二. geometry——几何位置

window frame

三. windowTitle——窗口标题

四. windowIcon——窗口图标

​qrc文件

五. windowOpacity——透明度 

六. cursor——光标

自定义光标

七. font——字体

八. toolTip——提示栏

九. focusPolicy——焦点策略(选中策略)

十.  styleSheet——样式表


 

Widget(组件),是Qt的核心概念,常叫做“控件”。控件是构成图形化界面的基本要素。

常见的控件有:按钮,输入框,下拉框,窗口等

在开发图形化界面时,为了布局和功能,控件有多种属性和管理对应属性的API

在Qt Designer中,已经有简便我们开发的图形化界面

  • 左侧是Qt提供的所有的控件,可通过拖拽到程序界面的方式添加控件
  • 选中一个控件,右下方会显示该控件的objectName,和其属性。后续使用代码开发时,可以通过ui->objectName的方式访问到该控件对象

一. enabled——是否可用

控件的首要目的是让用户使用,接受用户事件。而enabled属性是标识该控件是否可用

  • 不可用,即“禁用”指的是该控件不能接收任何用户的输入事件,并且外观上往往是灰色
  • 如果一个widget被禁用,则该widget的子元素也被禁用。例如一个窗口被禁用了,那么该窗口上的按钮,输入框等也会被禁用
API说明
isEnabled()获取该控件的可用状态
setEnabled()设置该控件是否可用,true表示可用,false表示禁用

 示例:

通过拖拽添加两个按钮:pushButton和pushButton_enabled(各自的objectName)

接着右键控件,选中“转到槽”,再选择要关联的信号——clicked。

该部分知识设计信号与槽,可参看【Qt】信号与槽

接着就可以在代码编写界面实现具体的槽函数。widget.cpp代码如下:

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{qDebug() << "当前按钮可用";//pushButton的打印测试
}void Widget::on_pushButton_enabled_clicked()
{bool enabled = ui->pushButton->isEnabled();if(enabled)ui->pushButton->setEnabled(false);//设置不可用elseui->pushButton->setEnabled(true);//设置可用
}

不可用的控件一般为灰色,按钮点击效果如下: 

在Qt Designer中也可以通过右下方的控件属性改变控件的可用状态

二. geometry——几何位置

在Qt中,界面的分布使用左手坐标系,如图所示

描述一个控件所在界面位置,通过这四个属性——x,y,height,width

Qt将这四个属性封装在了QRect(矩阵)中

API说明
geometry()获取到控件的位置和尺寸.返回值是一个QRect
setGeometry(QRect)设置控件的位置和尺寸,通过QRect设置
setGeometry(int x, int y, int width, int height)设置控件的位置和尺寸,通过四个属性分别设置

示例:通过四个按钮,控制一个按钮的上下左右移动

界面布局,即各按钮的objectName如下

 控制移动的四个按钮都关联clicked信号,各自槽函数实现如下:

void Widget::on_pushButton_up_clicked()
{QRect rect = ui->pushButton->geometry();rect.setY(rect.y() - 5);//向上移动5个像素点ui->pushButton->setGeometry(rect);
}void Widget::on_pushButton_down_clicked()
{QRect rect = ui->pushButton->geometry();rect.setY(rect.y() + 5);//向下移动5个像素点ui->pushButton->setGeometry(rect);
}void Widget::on_pushButton_left_clicked()
{QRect rect = ui->pushButton->geometry();rect.setX(rect.x() - 5);//向左移动5个像素点ui->pushButton->setGeometry(rect);
}void Widget::on_pushButton_right_clicked()
{QRect rect = ui->pushButton->geometry();rect.setX(rect.x() + 5);//向右移动5个像素点ui->pushButton->setGeometry(rect);
}

实际程序运行效果如下:

实际程序运行发现,该方式设置的控件位置,不仅会改变控件对象的左上角位置,还可以改变控件的height和width。

如果要想实现控件对象的平移,相应槽函数可以如下编写

void Widget::on_pushButton_up_clicked()
{QRect rect = ui->pushButton->geometry();//向上移动5个像素点
//    rect.setY(rect.y() - 5);
//    ui->pushButton->setGeometry(rect);ui->pushButton->setGeometry(rect.x(), rect.y() - 5, rect.width(),rect.height());
}void Widget::on_pushButton_down_clicked()
{QRect rect = ui->pushButton->geometry();//向下移动5个像素点
//    rect.setY(rect.y() + 5);
//    ui->pushButton->setGeometry(rect);ui->pushButton->setGeometry(rect.x(), rect.y() + 5, rect.width(),rect.height());
}void Widget::on_pushButton_left_clicked()
{QRect rect = ui->pushButton->geometry();//向左移动5个像素点
//    rect.setX(rect.x() - 5);
//    ui->pushButton->setGeometry(rect);ui->pushButton->setGeometry(rect.x() - 5, rect.y(), rect.width(),rect.height());
}void Widget::on_pushButton_right_clicked()
{QRect rect = ui->pushButton->geometry();//向右移动5个像素点
//    rect.setX(rect.x() + 5);
//    ui->pushButton->setGeometry(rect);ui->pushButton->setGeometry(rect.x() + 5, rect.y(), rect.width(),rect.height());
}

程序运行效果如下:

window frame

实际上Qt的QWidget的位置信息,有两个参照物。我们在Qt Designer中操作的界面是不包含标题栏和边框的

边框和标题栏都是Qt帮我们自动生成的,这就是window frame,是操作系统提供的,有特定API,在Qt中,window frame是在QWidget的构造函数中创建的

所以相对位置就有两个参照物, 包含window frame的和不包含window frame的

上述的geometry()和setGeometry()就是不包含window framede的


包含window frame

API说明
frameGeometry()获取到控件的位置和尺寸.返回值是一个QRect,包含window frame
setFrameGeometry(QRect)设置控件的位置和尺寸,通过QRect设置
setFrameGeometry(int x, int y, int width, int height)设置控件的位置和尺寸,通过四个属性分别设置

还有直接获取位置信息的方法,其返回值也是包含window frame的位置信息

ui->pushButton->x();
ui->pushButton->y();
ui->pushButton->width();
ui->pushButton->height();

 而通过geometry返回的QRect获取的位置信息就不包含window frame的

ui->pushButton->geometry().x();
ui->pushButton->geometry().y();
ui->pushButton->geometry().width();
ui->pushButton->geometry().height();

三. windowTitle——窗口标题

windowTitle顾名思义,就是窗口的标题

API说明
setWindowTitle设置当前控件的窗口标题

注意:只有最外层的窗口设置窗口标题才会有效果,如果是窗口中一个按钮调用setWindowTitle方法,是没有任何效果的

四. windowIcon——窗口图标

窗口图标就是图形化程序左上角的图标,任务列表中也会显示窗口图标,例如:

API说明
windowIcon()获取控件的窗口图标,返回QIcon对象
setWindowIcoen(const QIcon& icon)设置控件的窗口图标

setWindowIcon和setWindowTitle一样,只对最外层/顶层的窗口有效 

API说明
QIcon(const char*)将该路径的图片转为二进制,构造出QIcon对象

示例:

#include "widget.h"
#include "ui_widget.h"#include <QIcon>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QIcon icon(R"(C:\Users\Lenovo\Desktop\code\7.jpg)");//使用原始字符串字面量this->setWindowIcon(icon);
}Widget::~Widget()
{delete ui;
}

 qrc文件

上述构造windowIcon使用的图片是绝对路径,这是不合理的

  1. 用户不一定有该路径,比如绝对路径是F:/image/1.jpg,但如果用户只有C盘和D盘,那该路径就不存在
  2. 如果该路径的图片丢失,则无法加载窗口图标

使用相对路径的方式,可以保证路径存在

假设基准目录是D:/,给定的相对路径是./image/1.jpg  =》 在基准目录下找image目录,再在image目录中找1.jpg

 .  表示当前目录  ..表示上级目录

对于Qt程序来说,当前工作可能是变化的。比如通过Qt Creator运行的程序,当前工作目录是项目的构建目录;直接双击.exe运行,工作目录则是exe所在目录

所谓构建目录,是和Qt项目并列的,专门用来放生成的临时文件和最终exe的目录


但相对路径的方式无法解决路径图片丢失的问题,Qt提供的解决方法是qrc文件

qrc文件是一种xml格式的资源配置文件,用xml(标签)记录硬盘上的文件和对于的随意指定的资源名称,应用程序通过资源名称来访问这些资源

在Qt开发中,可以通过将资源文件添加到项目中来方便地访问和管理这些资源,这些资源文件可以位于qrc文件所在目录的同级或其子目录下

在构建程序的过程中,Qt会把资源文件的二进制数据转成cpp代码,编译到exe中,从而使依赖资源变得“路径无关”


使用qrc文件设置窗口图标

1. 点击文件,选择新建文件

2. 选择“文件和类”中的Qt 

3. 选择Qt Resource File

4. 填写文件名,路径名 ,注意文件名和路径名都要包含中文和特殊符号

版本控制根据自己的项目,跟创建项目时选择一致即可

Qt Creator为我们提供了qrc文件的图形化开发界面

5. 在qrc编辑器中,添加前缀(prefix)

所谓的前缀,可以理解为“目录” . 该前缀决定了后续我们如何在代码中访问资源。

此处我添加了一个"/"前缀

6. 选择添加的图片——Add Files

Qt要求添加的文件必须是在qrc文件的同级目录,或者同级目录的子目录中,所以需要提前把图片复制到该目录下

如果选择其他目录下的图片,Qt不允许添加

如下是添加成功的效果,然后我们就可以在代码中使用该图片

#include "widget.h"
#include "ui_widget.h"#include <QIcon>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QIcon icon(":/7.jpg");//:开头表示从qrc中获取资源,/是我们设置的前缀,7.jpg是资源名this->setWindowIcon(icon);
}Widget::~Widget()
{delete ui;
}

运行程序后,在项目的构建目录下,我们可以看到目录多了一个qrc_XXX.cpp和qrc_XXX.o文件。这两个文件都是Qt的元编程生成的:Qt基于qrc文件生成C++代码(qrc_XXX.cpp),在程序编译时一同编译(qrc_XXX.o),最后链接生成.exe文件

其中,图片是被转换成了一个字符数组,内置在程序代码中

 如此就既不需要关心图片资源的路径问题,也不需要关心图片丢失的问题

缺点:qrc文件是通过将图片资源转化为字符数组的形式存储在程序中,这势必会增加程序的大小,导致程序的编译,加载,运行更消耗资源。

五. windowOpacity——透明度 

windowOpacity用于控制控件的透明度,其数值为0.0 ~ 1.0,数值越大越不透明。0.0表示全透明,1.0表示完全不透明

如此的数值含义,理解为不透明度更合适,数值越大越不透明

API说明
windowOpacity()返回float类型,控件的不透明度
setWindowOpacity(float n)设置控件的不透明度

示例:添加两个按钮,一个增大不透明度,一个减小不透明度 

1. 使用Qt Designer添加按钮,设置objectName

2. 关联信号和槽 

void Widget::on_pushButton_add_clicked()
{//增加不透明度float opacity = this->windowOpacity();if(opacity >= 1.0)return;opacity += 0.1;this->setWindowOpacity(opacity);
}void Widget::on_pushButton_sub_clicked()
{//减小不透明度float opacity = this->windowOpacity();if(opacity <= 0.0)return;opacity -= 0.1;this->setWindowOpacity(opacity);
}

3. 运行程序,点击“-”,降低不透明度

六. cursor——光标

在Qt中,我们可以通过设置鼠标移动到不同控件,显示不同光标来增加程序的丰富性和美观

API说明
cursor()

获取当前控件的光标属性,返回QCursor对象

当鼠标悬停在该控件上,就会显示出对应形状

setCursor(const QCursor &cursor)设置该控件的光标,仅鼠标停留在该控件上生效
QGuiApplication::setOverrideCursor(const QCursor &cursor)设置全局光标的形状,整个程序的控件都会生效,覆盖各自控件setCursor设置的内容

图形化开发 

直接通过属性的cursor选择

代码编写 

 Qt封装了一个枚举类,枚举了内置的光标类型

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QCursor cursor(Qt::WaitCursor);ui->pushButton->setCursor(cursor);
}Widget::~Widget()
{delete ui;
}

自定义光标

为了让程序更加美观,我们也可以自定义光标,将图标做成光标

图片导入项目的方法也是使用qrc文件的方式,此处不过多赘述

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPixmap pixmap(":/candy.png");//位图对象pixmap = pixmap.scaled(40, 40);//对图片进行缩放——尺寸40 * 40像素QCursor cursor(pixmap, 0, 0);//构造光标ui->pushButton->setCursor(cursor);//设置光标
}Widget::~Widget()
{delete ui;
}
  1. QCursor构造函数的后两个参数是指明热点的位置,热点就是光标实际点击的点,此处设置的位置是相对光标的左上角的位置,(0, 0)就代表光标的最左上角
  2. QPixmap的scaled函数不是对原本图标的改变,是返回一个改变后的图标的副本

七. font——字体

Qt封装了QFont类,实现对控件中字体的管理,其属性包括字体家族,字体大小,字体粗细等等

属性说明
family字体家族,如“楷体”,“宋体”,“微软雅黑”等
pointSize字体大小
weight字体粗细,以数值方式表示粗心程度取值范围[0,99],数值越大,字体越粗
bold是否加粗,bool值,设置true,相当于weight = 75,false相当于weight = 50
italic是否倾斜
underline是否有下划线
strikeOut是否带有删除线

相关API

API说明
font()获取当前控件的字体信息,返回QFont对象
setFont(const QFont &font)设置当前控件的字体信息

示例:

图形化开发

使用Qt Designer可以直接在属性处选择字体信息

代码编写 

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QFont font = ui->label->font();//获取字体信息font.setBold(true);//加粗font.setFamily("宋体");//设置字体家族font.setPointSize(10);//设置大小font.setItalic(true);//设置倾斜ui->label->setFont(font);
}Widget::~Widget()
{delete ui;
}

八. toolTip——提示栏

当用户将鼠标悬置在控件上方时,我们可以添加提示栏来告诉用户如何使用该控件或者显示一些信息。例如在编译器中,我们将鼠标悬停在一个方法上,编译器就会弹出一个窗口显示其方法声明,这就是提示栏

相关API

API说明
toolTip()返回提示栏的文本,返回值为QString
setToolTip(const QString &string)设置提示栏文本
toolTipDuration()返回提示栏持续时间,int类型,单位为毫秒
setToolTipDuration(const int msec)试着提示栏持续时间,单位为毫秒。传-1代表提示栏不消失

示例:

图形化开发

可直接设置toolTip文本和toolTipDuration持续时间

代码编写

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->pushButton_yes->setToolTip("Yes按钮");ui->pushButton_yes->setToolTipDuration(-1);ui->pushButton_no->setToolTip("No按钮");ui->pushButton_no->setToolTipDuration(4000);
}Widget::~Widget()
{delete ui;
}

九. focusPolicy——焦点策略(选中策略)

所谓“焦点”,指的是能选中这个元素的方法,比如键盘操作。

“”焦点“”对于输入框、单选框、复选框等控件很重要

常见的焦点策略(选中策略)有点击和Tab

相关API 

API说明
focusPolicy()获取该控件的focusPolicy,返回值类型为Qt::FocusPolicy
setFocusPolicy(const Qt::FocusPolicy)设置该控件的focusPolicy

Qt::FocusPolicy是Qt内置的一个枚举类,取值如下:

  • Qt::NoFocus:该控件不会接受键盘焦点,不可被选中
  • Qt::TabFocus:该控件可通过Tab键接受焦点,可通过Tab选中
  • Qt::ClickFocus:该控件可通过鼠标点击接受焦点,看通过点击选中
  • Qt::StrongFocus:该控件可通过Tab键和点击选中
  • Qt::WheelFocus:该控件可通过Tab键,点击,鼠标滚轮选中

示例:

图形化开发

代码编写

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lineEdit->setFocusPolicy(Qt::StrongFocus);
}Widget::~Widget()
{delete ui;
}

十.  styleSheet——样式表

Qt可以通过CSS设置widget样式

CSS(Cascading Style Sheets 层叠样式表) 是网页前端技术,主要就是用来描述界面的样式

所谓“样式”,包括但不限于大小、位置、颜色、间距、字体、背景、边框等

CSS中可以设置的样式属性非常多,基于这些属性,Qt可以支持其中一部分,称为QSS(Qt Style Sheets)。具体的支持情况可以参看Qt文档中"Qt Style Sheets Reference"章节 

示例:设置文本样式

图形化开发

(1). 在Qt Designer添加一个Label标签,右键,选择“改变样式表”,使用CSS设置样式

语法同CSS,使用键值对的方式设置样式,其中键和值之间使用  分隔。键值对之间使用分隔

Qt Designer只能对样式的基本格式进行校验,不能检测出哪些样式不被Qt支持

比如text-align:center,这样的文本居中操作,就无法支持

 代码实现

API说明
styleSheet()返回该控件的样式表,返回值为QString
setStyleSheet(const QString &styleSheet)设置样式表,使用QSS风格字符串
ui->label->setStyleSheet("font-family:微软雅黑; font-size:30px; ");

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Web开发:ASP.NET CORE中前端使用Ajax定时获取后端数据

一、低难度&#xff08;刷新a标签&#xff09; 1、需求 给a标签每15s刷新一次&#xff0c;显示最新的时间&#xff08;时间必须由后端获取&#xff09; 应该如何操作呢 2、代码 后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Mi…

液态神经网络到底是什么?

液体神经网络是一种应用范围极其广泛的机器学习工具&#xff0c;不仅可以像传统神经网络那样学习并执行图像识别、自然语言处理和语音合成等多种任务&#xff1b;还突破了传统神经网络难以适应随时间变化的新数据的限制&#xff0c;能够应用于医学诊断和自动驾驶等涉及动态和不…

【Plotly-驯化】一文教你通过plotly画出动态可视化多变量分析:create_scatterplotmatrix

【Plotly-驯化】一文教你通过plotly画出动态可视化多变量分析&#xff1a;create_scatterplotmatrix 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &am…

无法解析插件 org.apache.maven.plugins:maven-war-plugin:3.2.3(已解决)

文章目录 1、问题出现的背景2、解决方法 1、问题出现的背景 最开始我想把springboot项目转为javaweb项目&#xff0c;然后我点击下面这个插件 就转为javaweb项目了&#xff0c;但是我后悔了&#xff0c;想要还原成springboot项目&#xff0c;点开项目结构关于web的都移除了&am…

MySql 触发器、存储器练习

一&#xff1a; 触发器 1、建立两个表:goods(商品表)、orders(订单表) 查看数据库&#xff1a;mysql> show databases; 使用数据库&#xff1a;mysql> use mydb16_trigger; 创建goods表&#xff1a; mysql> create table goods(gid char(8) not null primary key, …

海外发稿:打造希腊媒体宣发新局面

随着全球经济一体化的不断深入&#xff0c;企业对于海外市场的拓展需求日益迫切。在这个过程中&#xff0c;媒体宣发作为一种有效的市场推广手段&#xff0c;已经成为企业出海的重要策略之一。希腊&#xff0c;作为欧洲的重要经济体&#xff0c;拥有丰富的文化底蕴和众多的历史…

自动IP地址vs固定IP地址:哪个更快?深度解析与比较

在数字化时代&#xff0c;网络连接已成为我们日常生活和工作中不可或缺的一部分。而在网络配置中&#xff0c;IP地址的选择——无论是自动获取还是固定设置&#xff0c;都是影响网络性能和管理的关键因素之一。许多人常常疑惑&#xff1a;自动IP地址和固定IP地址哪个快一点&…

Linux中如何用ida调试fork后的子进程

原文链接 > https://redqx.github.io/linux/2024/07/24/linux-debugfork.html 本文的一些图片引用可能有一些问题, 比如数据不对劲,但无伤大雅 自己懒得粘贴图片了 环境: wsl-kali-2024 ida-7.7 插件: Lazy_ida, 还有一个什么插件不知道什么名字, 可以把汇编转字节码 …

基于PaddleClas的人物年龄分类项目

目录 一、任务概述 二、算法研发 2.1 下载数据集 2.2 数据集预处理 2.3 安装PaddleClas套件 2.4 算法训练 2.5 静态图导出 2.6 静态图推理 三、小结 一、任务概述 最近遇到个需求&#xff0c;需要将图像中的人物区分为成人和小孩&#xff0c;这是一个典型的二分类问题…

DLMS/COSEM中公开密钥算法的使用_椭圆曲线加密法

1.概述 椭圆曲线密码涉及有限域上的椭圆曲线上的算术运算。椭圆曲线可以定义在任何数字域上(实数、整数、复数)&#xff0c;但在密码学中&#xff0c;椭圆曲线最常用于有限素数域。 素数域上的椭圆曲线由一组实数(x, y)组成&#xff0c;满足以下等式: 方程的所有解的集合构成…

7月23日JavaSE学习笔记

异常&#xff1a; 程序中一些程序处理不了的特殊情况 异常类 Exception 继承自 Throwable 类&#xff08;可抛出的&#xff09; Throwable继承树 Error&#xff1a;错误/事故&#xff0c;Java程序无法处理&#xff0c;如 OOM内存溢出错误、内存泄漏...会导出程序崩溃 常见的…

结构拼图的艺术——组合模式(Python实现)

大家好&#xff0c;今天我们继续来讲结构型设计模式&#xff0c;上一期我们介绍了桥接模式&#xff0c;帮助大家理解了如何通过分离抽象部分和实现部分来实现代码的解耦。 今天&#xff0c;我们将介绍另一个非常实用的设计模式——组合模式&#xff0c;这个模式特别适合用于处…

Vue实现简单小案例

一、创建文件夹 二、引用vue.js <script src"../js/vue.js"></script> 三、准备一个容器 <div id"app"><h1>Hello,{{name}}</h1> </div> 四、创建实例 <script>new Vue({el:"#app", //el用于指…

Godot入门 03世界构建1.0版

在game场景&#xff0c;删除StaticBody2D节点&#xff0c;添加TileMap节点 添加TileSet图块集 添加TileSet源 拖动图片到图块&#xff0c;自动创建图块 使用橡皮擦擦除。取消橡皮擦后按住Shift创建大型图块。 进入选择模式&#xff0c;TileMap选择绘制&#xff0c;选中图块后在…

60V_20A超大电流LED照明车灯舞台灯同步降压芯片,驱动效率达99%并具有PWM极佳调光功能

简介 PC1226 是一款同步降压驱动控制芯片&#xff0c;用于驱动大功率 LED。芯片工作电压范围 7~60V&#xff0c;能够稳定输出高达数十安培的驱动电流&#xff0c;且有着极高的转换效率。 PC1226 集成了 PMOS 驱动模块&#xff0c;用于驱动高侧的 PMOS 功率 MOS&#xff0c;与…

【NPU 系列专栏 2 -- NVIDIA 的 H100 和 H200 是什么?】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 NVIDIA H100 和 H200 芯片NVIDIA H100 芯片简介NVIDIA H100 主要特点NVIDIA H100 应用场景NVIDIA H100 使用举例NVIDIA H200 芯片简介NVIDIA H200 主要特点NVIDIA H200 应用场景NVIDIA H200 使用举例Summary NVIDIA H100 和 H20…

甲方怒斥!!!为什么媒体不按原稿发布?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 前几天执行了一个媒体邀约的项目&#xff0c;邀约媒体参会&#xff0c;以及活动现场一切都很顺利&#xff0c;稿件同步的很晚&#xff0c;但还是让几个媒体连夜进行了刊登报道&#xff0…

AutoMySQLBackup execution.. Backup failed Docker部署mysql 自动备份失败!!

摘要&#xff1a; Docker容器部署的mysql5.7版本遇到使用AutoMYSQLBackup备份失败了&#xff0c;反复修改automysqlbackup.conf也不起效。这里推荐一种新的办法绕开老路子直接备份。 目录 一、环境介绍 二、AutoMYSQLBackup 三、问题描述 四、解决思路 4.1第一种解决思…

用cmake创建一个c++工程,调用c语言函数打印“c hello!”。

要使用CMake创建一个C工程&#xff0c;并在其中调用C语言函数以打印“C hello!”&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 项目目录结构 首先&#xff0c;确保你的项目目录结构如下&#xff1a; CPlusPlusWithCLibrary ├── CMakeLists.txt └── src├── m…

C++的map和set介绍

系列文章目录 二叉树搜索树 map和set习题 文章目录 系列文章目录前言一、关联式容器键值对二、树形结构的关联式容器2.1 set2.1.1 set的介绍2.1.3 set的使用删除节点find的不同效率count举例lower_bound 和 upper_bound 2.2 multiset2.2.1 区别&#xff1a;find查找erase删除e…