010 Qt_输入类控件(LineEdit、TextEdit、ComboBox、SpinBox、DateTimeEdit、Dial、Slider)

文章目录

  • 前言
  • 一、QLineEdit
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:用户登录界面
    • 5.示例二:验证两次输入的密码是否一致+显示密码
  • 二、TextEdit
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:获取多行输入框的内容
    • 5.示例二:验证输入框的各种信号
  • 三、ComboBox
    • 1.简介
    • 2.常见属性及说明
    • 3.核心方法 说明
    • 4.核心信号 说明
    • 5.示例一:ComboBox的基本使用
    • 6.示例二:从文件中读取数据填充下拉框中的条目
  • 四、SpinBox
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:QSpinBox的使用
  • 五、DateTimeEdit
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:计算日期差值
  • 六、Dial
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:使用旋钮调整窗口透明度
  • 七、Slider
    • 1.简介
    • 2.常见属性及说明
    • 3.重要信号及说明
    • 4.示例一:调整窗口大小
  • 小结

前言

本文将会向你介绍输入类控件:LineEdit、TextEdit、ComboBox、SpinBox、DateTimeEdit、Dial、Slider

一、QLineEdit

1.简介

QLineEdit 用来表示单行输入框. 可以输入一段文本, 但是不能换行.
QLineEdit 具有许多功能,包括自动完成、输入限制、密码模式等。它还可以设置最大长度、光标样式、输入校验等。QLineEdit 可以被嵌入到其他 Qt 小部件中,如对话框、窗口等。
在这里插入图片描述

2.常见属性及说明

属性说明
text输⼊框中的⽂本
inputMask输⼊内容格式约束
maxLength最⼤⻓度
frame是否添加边框
echoMode显⽰⽅式: QLineEdit::Normal :这是默认值,⽂本框会显⽰输⼊的⽂本。 QLineEdit::Password :在这种模式下,输⼊的字符会被隐藏,通常⽤星号(*)或等号(=)代替。QLineEdit::NoEcho :在这种模式下,⽂本框不会显⽰任何输⼊的字符。
cursorPosition光标所在位置
alignment⽂字对⻬⽅式, 设置⽔平和垂直⽅向的对⻬.
dragEnabled是否允许拖拽
readOnly是否是只读的(不允许修改)
placeHolderText当输⼊框内容为空的时候, 显⽰什么样的提⽰信息
clearButtonEnabled是否会⾃动显⽰出 “清除按钮”

3.重要信号及说明

信号说明
void cursorPositionChanged(int old, int new)当⿏标移动时发出此信号,old为先前的位置,new为新位置。
void editingFinished()当按返回或者回⻋键时,或者⾏编辑失去焦点时,发出此信号。
void returnPressed()当返回或回⻋键按下时发出此信号.如果设置了验证器, 必须要验证通过, 才能触发.
void selectionChanged()当选中的⽂本改变时,发出此信号。
void textChanged(const QString &text)当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改能够触发这个信号.
void textEdited(const QString &text))当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改不能触发这个信号.

4.示例一:用户登录界面

①在界面上创建三个输入框和两个单选按钮, ⼀个普通按钮
在这里插入图片描述
② 编写widget.cpp文件,初始化输入框的内容,演示inputMask(格式约束)、echoMode(显示方式)、placeHolderText(提示信息)、clearButtonEnabled(清除按钮)等属性

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lineEdit_name->setPlaceholderText("请输入姓名");ui->lineEdit_name->setClearButtonEnabled(true); //显示清除按钮ui->lineEdit_password->setPlaceholderText("请输入密码");ui->lineEdit_password->setClearButtonEnabled(true);ui->lineEdit_password->setEchoMode(QLineEdit::Password); //显示方式为密码模式ui->lineEdit_phone->setPlaceholderText("请输入电话号码");ui->lineEdit_phone->setClearButtonEnabled(true);//约束格式:输入11位数,按照3-4-4形式ui->lineEdit_phone->setInputMask("000-0000-0000");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString gender=ui->radioButton_male->isChecked() ? "男" : "女";qDebug()<<"姓名:"<<ui->lineEdit_name->text() << "密码:" << ui->lineEdit_password->text()<< "性别: " << gender<< "手机: " << ui->lineEdit_phone->text();
}

5.示例二:验证两次输入的密码是否一致+显示密码

①创建两个LineEdit输入框和⼀个CheckBox复选框以及一个label
在这里插入图片描述

②编写widget.cpp文件,给两个输入框lineEdit添加判断两个密码是否相同逻辑的槽函数,给复选框添加切换显示模式的槽函数——演示void textEdited(const QString &text))信号(当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对文本的修改不能触发这个信号)

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit_2->setEchoMode(QLineEdit::Password);ui->label->setText("密码为空");
}Widget::~Widget()
{delete ui;
}void Widget::on_checkBox_toggled(bool checked)
{if(checked){ui->lineEdit->setEchoMode(QLineEdit::Normal);ui->lineEdit_2->setEchoMode(QLineEdit::Normal);}else{ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit_2->setEchoMode(QLineEdit::Password);}}void Widget::on_lineEdit_textEdited(const QString &arg1)
{(void)arg1; //类型转换,消除编译器未使用到arg1参数的警告const QString& s1 = ui->lineEdit->text();const QString& s2 = ui->lineEdit_2->text();if (s1.isEmpty() && s2.isEmpty()){ui->label->setText("密码为空!");}else if (s1 == s2){ui->label->setText("两次输入的密码相同!");}else{ui->label->setText("两次输入的密码不同!");}
}void Widget::on_lineEdit_2_textEdited(const QString &arg1)
{(void)arg1;const QString& s1 = ui->lineEdit->text();const QString& s2 = ui->lineEdit_2->text();if (s1.isEmpty() && s2.isEmpty()){ui->label->setText("密码为空!");}else if (s1 == s2){ui->label->setText("两次输入的密码相同!");}else{ui->label->setText("两次输入的密码不同!");}
}

③运行程序,观察效果
在这里插入图片描述

二、TextEdit

1.简介

QTextEdit是Qt中的一个可编辑的文本框控件,可以用于显示和编辑多行文本。 它是基于QPlainTextEdit的一个子类,提供了更丰富的功能。

QTextEdit可以用于显示富文本,支持使用HTML或其他格式来设置文本的样式,包括字体、颜色、大小、对齐方式等。 它还可以显示图像和链接,并且可以响应用户的点击事件。

除了显示富文本,QTextEdit还支持一些基本的文本编辑操作,如复制、剪切、粘贴和撤销。它还提供了一些高级的编辑功能,如查找和替换、查看和修改文本的样式、插入列表和表格等

2.常见属性及说明

属性说明
markdown输⼊框内持有的内容. ⽀持 markdown 格式. 能够⾃动的对markdown ⽂本进⾏渲染成 html
html输⼊框内持有的内容. 可以⽀持⼤部分 html 标签. 包括 img 和 table 等.
placeHolderText输⼊框为空时提⽰的内容.
readOnly是否是只读的
undoRedoEnable是否开启 undo / redo 功能. 按下 ctrl + z 触发 undo 按下 ctrl + y 触发 redo
autoFormating开启⾃动格式化.
tabstopWidth按下缩进占多少空间
overwriteMode是否开启覆盖写模式
acceptRichText是否接收富⽂本内容
verticalScrollBarPolicy垂直⽅向滚动条的出现策略 Qt::ScrollBarAsNeeded : 根据内容⾃动决定是否需要滚动条。这是默认值。 Qt::ScrollBarAlwaysOff : 总是关闭滚动条。 Qt::ScrollBarAlwaysOn : 总是显⽰滚动。horizontalScrollBarPolicy ⽔平⽅向滚动条的出现策略Qt::ScrollBarAsNeeded : 根据内容⾃动决定是否需要滚动条。这是默认值。Qt::ScrollBarAlwaysOff : 总是关闭滚动条。Qt::ScrollBarAlwaysOn : 总是显⽰滚动条。

3.重要信号及说明

信号说明
textChanged()⽂本内容改变时触发
selectionChanged()选中范围改变时触发
cursorPositionChanged()光标移动时触发
undoAvailable(bool)可以进⾏ undo 操作时触发
redoAvailable(bool)可以进⾏ redo 操作时触发
copyAvaiable(bool)⽂本被选中/取消选中时触发

4.示例一:获取多行输入框的内容

①在界面中创建一个label和一个TextEdit控件
在这里插入图片描述

②编写多行输入框TextEdit的槽函数,信号选择textChanged()

#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_textEdit_textChanged()
{const QString& content = ui->textEdit->toPlainText();qDebug() << content;ui->label->setText(content);
}

③运行程序,观察结果
在这里插入图片描述

5.示例二:验证输入框的各种信号

①在界面上创建一个TextEdit控件
在这里插入图片描述
②给输入框添加以下几个 slot 函数,演示textChanged(文本内容发生变化时触发)、selectionChanged(选中的文本范围发生变化时触发)、cursorPositionChanged(光标位置发生变化时触发)、undoAvailable(可以撤消的操作存在时)、redoAvailable(可以重做的操作存在时)、copyAvaiable(可以复制的文本存在时)等信号

#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_textEdit_textChanged()
{qDebug() << "[TextChange]"  << ui->textEdit->toPlainText();
}void Widget::on_textEdit_selectionChanged()
{const QTextCursor& cursor = ui->textEdit->textCursor();qDebug() << "[cursorPositionChanged]" << cursor.position();
}void Widget::on_textEdit_cursorPositionChanged()
{const QTextCursor& cursor = ui->textEdit->textCursor();qDebug() << "[cursorPositionChanged]" << cursor.position();
}void Widget::on_textEdit_undoAvailable(bool b)
{qDebug() << "[undoAvailable]" << b;
}void Widget::on_textEdit_redoAvailable(bool b)
{qDebug() << "[redoAvailable]" << b;
}void Widget::on_textEdit_copyAvailable(bool b)
{qDebug() << "[copyAvailable]" << b;
}

③运行代码,查看结果
输入1,undoAvailable为true,说明我们可以撤回,cursorPositionChanged光标移动到1的位置处,textChanged文本内容为1,
在这里插入图片描述

Ctrl y撤回1,可看到undoAvailable为false,说明没有可以撤回的了,redoAvailable为true,说明我们可以撤回刚才那个撤回操作
在这里插入图片描述
ctrl y,redoAvailable就为false了
在这里插入图片描述

三、ComboBox

1.简介

QComboBox是一个下拉框控件,用于在一个预定义的列表中选择一个选项。它是Qt库中的一个类,可以在Qt应用程序中使用
在这里插入图片描述

2.常见属性及说明

属性说明
currentText当前选中的⽂本
currentIndex当前选中的条⽬下标.从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
editable是否允许修改,设为 true 时, QComboBox 的⾏为就⾮常接近 QLineEdit , 也可以设置 validator
iconSize下拉框图标 (⼩三⻆) 的⼤⼩
maxCount最多允许有多少个条⽬

3.核心方法 说明

addItem(const QString&) 添加⼀个条⽬
currentIndex() 获取当前条⽬的下标
从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
currentText() 获取当前条⽬的⽂本内容

4.核心信号 说明

核心信号说明
activated(int); activated(const QString & text)当用户选择了⼀个选项时发出,这个时候相当于用户点开下拉框, 并且⿏标划过某个选项.此时还没有确认做出选择.
currentIndexChanged(int) currentIndexChanged(const QString& text)当前选项改变时发出. 此时用户已经明确的选择了⼀个选项. 用户操作或者通过程序操作都会触发这个信号.
editTextChanged(const QString &text)当编辑框中的⽂本改变时发出(editable 为 true 时有效)

5.示例一:ComboBox的基本使用

①拖拽三个comboBox下拉框和一个pushbutton按钮
在这里插入图片描述
②编写widget.cpp文件,添加下拉框中的选项

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//添加条目ui->comboBox->addItem("数据库原理");ui->comboBox->addItem("概率论");ui->comboBox_2->addItem("体育课");ui->comboBox_2->addItem("心理课");ui->comboBox_3->addItem("动漫鉴赏");ui->comboBox_3->addItem("电影鉴赏");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{qDebug() << "专业课选择" << ui->comboBox->currentText();qDebug() << "必修课选择" << ui->comboBox_2->currentText();qDebug() << "选修课选择" << ui->comboBox_3->currentText();
}

③运行程序观察结果
在这里插入图片描述

6.示例二:从文件中读取数据填充下拉框中的条目

①从界面上拖拽一个下拉框comboBox,然后创建一个txt文件,每个数据占一行
在这里插入图片描述
②编写widget.cpp文件,从文件中读取数据添加条目到comboBox

#include "widget.h"
#include "ui_widget.h"
#include <fstream>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);std::ifstream file("D:/QT/code/ComboBox_2/config.txt");std::string line;while(std::getline(file, line)){ui->comboBox->addItem(QString::fromStdString(line)); //将std::string转化为QString}file.close();   //关闭文件,防止资源泄漏
}Widget::~Widget()
{delete ui;
}

③运行代码查看结果
在这里插入图片描述

四、SpinBox

1.简介

使用 QSpinBox 或者 QDoubleSpinBox 表示 “微调框”, 它是带有按钮的输入框. 可以用来输⼊整数/浮点数. 通过点击按钮来修改数值大小
在这里插入图片描述

2.常见属性及说明

属性说明
value存储的数值.
singleStep每次调整的 “步长”. 按下⼀次按钮数据变化多少.
displayInteger数字的进制,例如 displayInteger 设为 10, 则是按照 10 进制表⽰. 设为 2 则为 2进制表⽰.
minimum最小值
maximum最大值
buttonSymbol按钮上的图标
UpDownArrows上下箭头形式
PlusMinus加减号形式
NoButtons没有按钮
accelerated (加速的)按下按钮时是否为快速调整模式
correctionMode输入有误时如何修正。

3.重要信号及说明

信号说明
textChanged(QString)微调框的⽂本发⽣改变时会触发.参数 QString 带有 前缀 和 后缀.
valueChanged(int)微调框的⽂本发⽣改变时会触发.参数 int, 表⽰当前的数值.

4.示例一:QSpinBox的使用

① 在界面中创建三个下拉框ComboBox、三个spinBox微调框、一个pushbutton按钮
在这里插入图片描述

②编写widget.cpp,微调框初始值设置为0

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("巨⽆霸");ui->comboBox->addItem("⻨辣鸡腿堡");ui->comboBox_2->addItem("薯条");ui->comboBox_2->addItem("⻨辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");ui->spinBox->setValue(0);       //设置初始值ui->spinBox->setRange(0, 5);    //设置范围ui->spinBox_2->setValue(0);ui->spinBox_2->setRange(0, 5);ui->spinBox_3->setValue(0);ui->spinBox_3->setRange(0, 5);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{qDebug() << "当前下单的内容:"<< ui->comboBox->currentText() << " : " << ui->spinBox->value()<< ui->comboBox_2->currentText() << " : " << ui->spinBox_2->value()<< ui->comboBox_3->currentText() << " : " << ui->spinBox_3->value();
}

③运行程序,查看结果,我们可以通过spinBox来调整数量
在这里插入图片描述

五、DateTimeEdit

1.简介

QTimeEdit 作为时间的微调框.
QDateEdit 作为日期的微调框.
QDateTimeEdit 作为时间日期的微调框.
允许用户输入日期和时间,并提供了可视化的日历和时钟部件,方便用户选择日期和时间。它可以显示日期、时间或日期时间,具体取决于设置的格式。

2.常见属性及说明

属性说明
dateTime时间日期的值. 形如 2000/1/1 0:00:00
date单纯日期的值. 形如 2001/1/1
time单纯时间的值. 形如 0:00:00
displayFormat时间日期格式. 形如 yyyy/M/d H:mm • y 表示年份 • M 表示⽉份 • d 表示日期 • H 表示⼩时 • m 表示分钟 • s 表示秒
minimumDateTime最小时间日期
maximumDateTime最大时间日期
timeSpec• Qt::LocalTime :显示本地时间。 • Qt::UTC :显示协调世界时(UTC)。 • Qt::OffsetFromUTC :显示相对于UTC的偏移量(时差).

3.重要信号及说明

信号说明
dateChanged(QDate)日期改变时触发.
timeChanged(QTime)时间改变时触发.
dateTimeChanged(QDateTime)时间日期任意⼀个改变时触发

4.示例一:计算日期差值

①在界面上创建两个 QDateTimeEdit 和⼀个按钮, ⼀个 label
在这里插入图片描述

②编写widget.cpp,计算两个日期天、时、秒的差值

daysTo函数:计算两个日期的天数
secsTo 函数:计算两个时间的秒数.
两个日期之间的小时差值:通过 (秒数 / 3600) 换算成小时数,再余上 24 得到零几个小时.
使用 QString::number 把整数转成 QString 进行拼接.

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QDateTime timeOld = ui->dateTimeEdit_old->dateTime();QDateTime timeNew = ui->dateTimeEdit_new->dateTime();//计算日期差值int days = timeOld.daysTo(timeNew);int hours = (timeOld.secsTo(timeNew) / 3600) % 24;//设置label的内容QString text = QString("距离生日已经过去") + QString::number(days) + QString(" 天 零")+ QString::number(hours) + QString(" 个小时!");ui->label->setText(text);
}

③运行程序观察结果
在这里插入图片描述

六、Dial

1.简介

QDial是Qt框架中的一个类,用于创建一个旋钮控件。它提供了一个圆形的旋钮,用户可以通过拖动旋钮或点击旋钮上的刻度来选择一个值。QDial可以用于设置音量、亮度等可调节的参数。
在这里插入图片描述

2.常见属性及说明

属性说明
value持有的数值.
minimum最小值
maximum最大值
singleStep按下方向键的时候改变的步长
pageStep按下 pageUp / pageDown 的时候改变的步长
sliderPosition界⾯上旋钮显示的 初始位置
tracking外观是否会跟踪数值变化.默认值为 true. ⼀般不需要修改.
wrapping是否允许循环调整.即数值如果超过最⼤值, 是否允许回到最⼩值.(调整过程能否 “套圈”)
notchesVisible是否显示 刻度线
notchTarget刻度线之间的相对位置.数字越⼤, 刻度线越稀疏.

3.重要信号及说明

属性说明
valueChanged(int)数值改变时触发
rangeChanged(int, int)范围变化时触发

4.示例一:使用旋钮调整窗口透明度

①拖拽一个dial旋钮与l一个abel文本框
在这里插入图片描述
②编写widget.cpp文件,设置旋钮的初始状态

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置可以循环旋转ui->dial->setWrapping(true);//设置刻度可见ui->dial->setNotchesVisible(true);//设置最大值为ui->dial->setMaximum(100);//设置最小值为ui->dial->setMinimum(0);//设置初始值为ui->dial->setValue(100);
}Widget::~Widget()
{delete ui;
}void Widget::on_dial_valueChanged(int value)
{ui->label->setText(QString("当前不透明度为:") + QString::number(value));this->setWindowOpacity((double)value / 100);
}

③运行程序观察结果
在这里插入图片描述

七、Slider

1.简介

QSlider是Qt框架中的一个控件,用于实现滑动条的功能。滑动条是用户界面中的常用控件之一,可以通过拖动滑块来选择一个值,或者通过点击滑条上的位置来快速定位。

2.常见属性及说明

属性说明
value持有的数值.
minimum最⼩值
maximum最⼤值
singleStep按下⽅向键的时候改变的步⻓.
pageStep按下 pageUp / pageDown 的时候改变的步⻓.
sliderPosition滑动条显⽰的 初始位置
tracking外观是否会跟踪数值变化. 默认值为 true. ⼀般不需要修改.
orientation滑动条的⽅向是⽔平还是垂直
invertedAppearance是否要翻转滑动条的⽅向
tickPosition刻度的位置.
tickInterval刻度的密集程度.

3.重要信号及说明

属性说明
valueChanged(int)数值改变时触发
rangeChanged(int, int)范围变化时触发

4.示例一:调整窗口大小

①在界面中创建两个滑动条slider,一个是水平的一个垂直的
在这里插入图片描述
可以在此选择是垂直还是水平的滑动条
在这里插入图片描述
②完成slider滑动条的初始化,以及编写对应的槽函数
槽函数型号选用valueChanged

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->horizontalSlider->setMinimum(500);ui->horizontalSlider->setMaximum(2000);ui->horizontalSlider->setSingleStep(100); //滑块每次增加或减少的数值是 100ui->horizontalSlider->setValue(800);ui->verticalSlider->setMinimum(500);ui->verticalSlider->setMaximum(1500);ui->verticalSlider->setSingleStep(100);ui->verticalSlider->setValue(600);//翻转朝向:默认滑块从下向上,改成从上往下增长ui->verticalSlider->setTickInterval(true);
}Widget::~Widget()
{delete ui;
}//改变窗口大小
void Widget::on_horizontalSlider_valueChanged(int value)
{QRect rect = this->geometry();this->setGeometry(rect.x(), rect.y(), value, rect.height());qDebug() << value;
}void Widget::on_verticalSlider_valueChanged(int value)
{QRect rect = this->geometry();this->setGeometry(rect.x(), rect.y(), rect.width(), value);qDebug() << value;
}

③运行程序,可以观察到通过滑动滑动条可以实现窗口大小的改变
在这里插入图片描述

小结

今日分享就到这里啦,如果本文存在疏漏或错误的地方还请您能够指出,另外地,本年度的博客更新就到这啦,咱们明年见!!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 的7种工作模式

RabbitMQ 共提供了7种⼯作模式,进⾏消息传递,. 官⽅⽂档:RabbitMQ Tutorials | RabbitMQ 1.Simple(简单模式) P:⽣产者,也就是要发送消息的程序 C:消费者,消息的接收者 Queue:消息队列,图中⻩⾊背景部分.类似⼀个邮箱,可以缓存消息;⽣产者向其中投递消息,消费者从其中取出消息…

WebAPI编程(第一天,第二天)

WebAPI编程&#xff08;第一天&#xff0c;第二天&#xff09; day01 - Web APIs 1.1. Web API介绍 1.1.1 API的概念1.1.2 Web API的概念1.1.3 API 和 Web API 总结 1.2. DOM 介绍 1.2.1 什么是DOM1.2.2. DOM树 1.3. 获取元素 1.3.1. 根据ID获取1.3.2. 根据标签名获取元素1.3.…

java如何使用poi-tl在word模板里渲染多张图片

1、poi-tl官网地址 http://deepoove.com/poi-tl/ 2、引入poi-tl的依赖 <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version></dependency>3、定义word模板 释义&#xf…

web三、 window对象,延时器,定时器,时间戳,location对象(地址),本地存储-localStorage,数组去重new Set

一、window对象 window对象 是一个全局对象&#xff0c;也可以说是JavaScript中的 顶级对象 像document、alert()、console.log()这些都是window的属性&#xff0c;基本BOM的属性和方法都是window的 所有通过 var定义 在全局作用域中的 变量 、 函数 都会变成window对象的属…

利用Spring Cloud Gateway Predicate优化微服务路由策略

利用Spring Cloud Gateway Predicate优化微服务路由策略 一、Predicate简介 Spring Cloud Gateway 是 Spring 生态系统中用于构建 API 网关的框架&#xff0c;它基于 Project Reactor 和 Netty 构建&#xff0c;旨在提供一种高效且灵活的方式来处理 HTTP 请求和响应。 Spring …

C#代码实现把中文录音文件(.mp3 .wav)转为文本文字内容

我们有一个中文录音文件.mp3格式或者是.wav格式&#xff0c;如果我们想要提取录音文件中的文字内容&#xff0c;我们可以采用以下方法&#xff0c;不需要使用Azure Speech API 密钥注册通过离线的方式实现。 1.首先我们先在NuGet中下载两个包 NAudio 2.2.1、Whisper.net 1.7.3…

CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践

植被作为陆地生态系统的重要组成部分对于生态环境功能的维持具有关键作用。植被净初级生产力&#xff08;Net Primary Productivity, NPP&#xff09;是指单位面积上绿色植被在单位时间内由光合作用生产的有机质总量扣除自养呼吸的剩余部分。植被NPP是表征陆地生态系统功能及可…

申请腾讯混元的API Key并且使用LobeChat调用混元AI

申请腾讯混元的API Key并且使用LobeChat调用混元AI 之前星哥写了一篇文章《手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源lobe-chat》搭建的开源项目&#xff0c;今天这篇文章教大家如何添加腾讯云的混元模型&#xff0c;并且使用LobeChat调用腾讯混元AI。 申请腾讯混…

alertmanager告警持久化方案:alertsnitch

Prometheus告警记录持久化 Prometheus将基于告警规则生成的告警存储为时间序列&#xff0c;不会将Alertmanager的告警信息持久化存储&#xff0c; 那么针对历史告警的检索、统计等需求就无法实现。因此需要一种持久化机制用于存储历史告警信息&#xff0c; 本文主要探究基于al…

springboot481基于springboot社区老人健康信息管理系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统社区老人健康信息管理系统信息管理难度大&#xff0c;容错…

109.【C语言】数据结构之求二叉树的高度

目录 1.知识回顾&#xff1a;高度&#xff08;也称深度&#xff09; 2.分析 设计代码框架 返回左右子树高度较大的那个的写法一:if语句 返回左右子树高度较大的那个的写法二:三目操作符 3.代码 4.反思 问题 出问题的代码 改进后的代码 执行结果 1.知识回顾&#xf…

重温设计模式--享元模式

文章目录 享元模式&#xff08;Flyweight Pattern&#xff09;概述享元模式的结构C 代码示例1应用场景C示例代码2 享元模式&#xff08;Flyweight Pattern&#xff09;概述 定义&#xff1a; 运用共享技术有效地支持大量细粒度的对象。 享元模式是一种结构型设计模式&#xff0…

Pytorch | 从零构建EfficientNet对CIFAR10进行分类

Pytorch | 从零构建EfficientNet对CIFAR10进行分类 CIFAR10数据集EfficientNet设计理念网络结构性能特点应用领域发展和改进 EfficientNet结构代码详解结构代码代码详解MBConv 类初始化方法前向传播 forward 方法 EfficientNet 类初始化方法前向传播 forward 方法 训练过程和测…

【教程】第十一章 子任务 工时——化繁为简

小伙伴们&#xff0c;终于迎来了新章节&#xff01;随着业务的扩展&#xff0c;任务越来越多&#xff0c;越来越复杂&#xff0c;我们逐渐意识到&#xff0c;简单的任务管理已经不够用了。现在&#xff0c;我们需要对任务进行更细致的管理&#xff0c;分解成多个层级&#xff0…

git clone必须使用sudo否则失败 git推送错误想再次编辑和推送

git clone必须使用sudo否则失败 我的问题比较特别用env | grep -i proxy发现没问题所幸直接删掉~/.ssh下的秘钥&#xff0c;重新弄 搭建SSH秘钥方法: &#xff08;一&#xff09;配置git 操作&#xff1a;linux镜像--桌面--右键--打开终端。 > git config --global user.n…

Docker搭建kafka环境

系统&#xff1a;MacOS Sonoma 14.1 Docker版本&#xff1a;Docker version 27.3.1, build ce12230 Docker desktop版本&#xff1a;Docker Desktop 4.36.0 (175267) 1.拉取镜像 先打开Docker Desktop&#xff0c;然后在终端执行命令 docker pull lensesio/fast-data-dev …

Java复习|图形用户界面AWT、Swing----银行客户管理系统【校课版】【1】

校课总结&#xff0c;部分&#xff0c;未完待续...... 背景了解 Java的AWT和Swing的现状 AWT&#xff08;Abstract Window Toolkit&#xff09; AWT是Java中最早期的图形用户界面&#xff08;GUI&#xff09;工具包&#xff0c;它直接与操作系统提供的图形函数进行交互&a…

cudnn版本gpu架构

nvcc --help 可以看 --gpu-architecture 写到的支持的架构 NVIDIA 的 GPU 架构是按代次发布的&#xff0c;以下是这些架构的对应说明&#xff1a; NVIDIA Hopper: 这是 NVIDIA 于 2022 年推出的架构之一&#xff0c;面向高性能计算&#xff08;HPC&#xff09;和人工智能&…

视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…

【Mysql】truncate 和 delete的区别

【Mysql】truncate 和 delete的区别 【一】删除内容【二】执行速度【三】事务日志记录【四】回滚【五】触发器【六】外键约束【七】锁定【八】使用场景【九】总结【1】truncate【2】drop【3】delete 【一】删除内容 &#xff08;1&#xff09;TRUNCATE TABLE&#xff1a;删除表…