C++ Qt开发:标准Dialog对话框组件

Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍标准对话框QInputDialogQFileDialog 这两种对话框组件的常用方法及灵活运用。

在 Qt 中,标准对话框提供了一些常见的用户交互界面,用于执行特定任务,例如获取用户输入、选择文件路径、显示消息等。这些对话框通常具有标准化的外观和行为,使得在不同的平台上能够保持一致性。在一般的开发过程中,标准对话框是开发者常用的工具之一。

1.1 QInputDialog

QInputDialog 类提供了一种简单的方法,用于获取用户的输入。它可以用于获取文本、整数、浮点数等类型的输入。

以下是 QInputDialog 类的一些常用方法的说明和概述,以表格形式列出:

方法描述
getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) -> QString显示一个文本输入对话框,返回用户输入的文本。
getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int minValue = -2147483647, int maxValue = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) -> int显示一个整数输入对话框,返回用户输入的整数。
getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double minValue = -2147483647, double maxValue = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) -> double显示一个浮点数输入对话框,返回用户输入的浮点数。
getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) -> QString显示一个列表输入对话框,返回用户选择的项。
getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) -> QString显示一个多行文本输入对话框,返回用户输入的文本。

这些方法提供了不同类型的输入对话框,包括文本、整数、浮点数、列表等。通过这些方法,开发者可以方便地与用户交互,获取用户输入的信息。需要注意的是,这些方法都是静态方法,可以直接通过类名 QInputDialog 调用。

为了方便展示这四种标准输入框的使用,此处读者可自行绘制如下所示的页面UI布局,并自行导入#include <QInputDialog>#include <QLineEdit>两个头文件;

1.1.3 文本输入

通过getText方法实现,QInputDialog::getText 是 Qt 中用于显示一个简单的对话框,其中包含一个用于输入文本的字段的静态方法。这个方法通常用于获取用户输入的文本。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • label: 输入字段上方的文本标签。
  • echo: 输入文本时的回显模式,可以是 QLineEdit::NormalQLineEdit::NoEcho 等。
  • text: 初始文本。
  • ok: 一个布尔指针,用于获取对话框的 OK 按钮的状态。
  • flags: 可选的窗口标志。

方法返回用户输入的文本,如果用户取消了对话框,则返回一个空字符串。你可以根据需要调整标签、初始文本、回显模式等参数,以满足你的具体需求。

该方法要求用户传入标题EchoMode等必备参数,需要注意的是如果读者想要输入时隐藏显示文本则可以直接设置QLineEdit::Password为密码模式,此时输入的密码将会被*号代替,代码如下;

void MainWindow::on_pushButton_text_clicked()
{QString dlgTitle="输入文字对话框";QString txtLabel="请输入文件名";QString defaultInput="新建文件.txt";QLineEdit::EchoMode echoMode=QLineEdit::Normal;       // 正常文字输入// QLineEdit::EchoMode echoMode=QLineEdit::Password;  // 密码输入bool flag = false;QString text = QInputDialog::getText(this, dlgTitle,txtLabel, echoMode,defaultInput, &flag);if (flag && !text.isEmpty()){ui->plainTextEdit->appendPlainText(text);}
}

代码运行后点击文本输入按钮,则可弹出输入框,如下所示;

1.1.2 整数输入

通过getInt方法实现,QInputDialog::getInt 是 Qt 中用于显示一个简单的对话框,其中包含一个用于输入整数的字段的静态方法。这个方法通常用于获取用户输入的整数。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • label: 输入字段上方的文本标签。
  • value: 初始值。
  • min: 最小值。
  • max: 最大值。
  • step: 步长,表示每次增减的量。
  • ok: 一个布尔指针,用于获取对话框的 OK 按钮的状态。
  • flags: 可选的窗口标志。

方法返回用户输入的整数,如果用户取消了对话框,则返回 0。你可以根据需要调整标签、初始值、范围、步长等参数,以满足你的具体需求。

该方法提供了一个SpinBox选择框,在输入时可以通过传入minValue限制最小值,maxValue限制最大值,通过stepValue设置每次步长,代码如下;

void MainWindow::on_pushButton_int_clicked()
{QString dlgTitle="输入整数对话框";QString txtLabel="设置字体大小";int defaultValue=ui->plainTextEdit->font().pointSize();   // 现有字体大小int minValue=6, maxValue=50, stepValue=1;                 // 范围(步长)bool flag=false;int inputValue = QInputDialog::getInt(this, dlgTitle,txtLabel,defaultValue, minValue,maxValue,stepValue,&flag);if (flag){QFont font=ui->plainTextEdit->font();font.setPointSize(inputValue);ui->plainTextEdit->setFont(font);// 显示在编辑框内QString stringValue = QString::number(inputValue);ui->plainTextEdit->appendPlainText(stringValue);}
}

代码运行后点击整数输入按钮,则可弹出输入框,整数选择最小被限制在了6而最大限制为50,如下所示;

1.1.3 浮点数输入

通过getDouble方法实现,QInputDialog::getDouble 是 Qt 中用于显示一个简单的对话框,其中包含一个用于输入浮点数的字段的静态方法。这个方法通常用于获取用户输入的浮点数。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • label: 输入字段上方的文本标签。
  • value: 初始值。
  • min: 最小值。
  • max: 最大值。
  • decimals: 小数位数。
  • ok: 一个布尔指针,用于获取对话框的 OK 按钮的状态。
  • flags: 可选的窗口标志。

方法返回用户输入的浮点数,如果用户取消了对话框,则返回 0.0。你可以根据需要调整标签、初始值、范围、小数位数等参数,以满足你的具体需求。

该方法提供了一个SpinBox选择框,浮点数的输入同样可以限制输入长度,同时浮点数也可以指定小数点的位数,通过decimals指定为两位显示,代码如下;

void MainWindow::on_pushButton_float_clicked()
{QString dlgTitle="输入浮点数对话框";QString txtLabel="输入一个浮点数";float defaultValue=3.13;float minValue=0, maxValue=10000;  // 范围int decimals=2;                    // 小数点位数bool flag=false;float inputValue = QInputDialog::getDouble(this, dlgTitle,txtLabel,defaultValue, minValue,maxValue,decimals,&flag);if (flag){QString str=QString::asprintf("输入了一个浮点数:%.2f",inputValue);ui->plainTextEdit->appendPlainText(str);}
}

代码运行后点击浮点数输入按钮,则可弹出输入框,浮点数选择最小被限制在了0而最大限制为10000,默认值为3.13保留长度为两位,如下所示;

1.1.4 单选框输入

通过getItem方法实现,该方法适合于只让用户选择特定的内容,QInputDialog::getItem 是 Qt 中用于显示一个简单的对话框,其中包含一个下拉框(QComboBox)供用户选择的静态方法。这个方法通常用于获取用户从列表中选择的项。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • label: 下拉框上方的文本标签。
  • items: 字符串列表,表示下拉框中的选项。
  • currentItem: 初始时被选中的项的索引。
  • editable: 是否允许用户编辑下拉框中的文本。
  • ok: 一个布尔指针,用于获取对话框的 OK 按钮的状态。在这个例子中,我们传递了 nullptr,因为我们不关心 OK 按钮的状态。
  • flags: 可选的窗口标志。

方法返回用户选择的项,如果用户取消了对话框,则返回一个空字符串。你可以根据需要调整标签、初始选中项、是否可编辑等参数,以满足你的具体需求。代码如下所示;

void MainWindow::on_pushButton_checkbox_clicked()
{QStringList items;                        // 列表内容items <<"优秀"<<"良好"<<"合格"<<"不合格";    // 放入列表QString dlgTitle="条目选择对话框";QString txtLabel="请选择级别";int curIndex=0;                            // 初始选择项bool editable=false;                       // 是否可编辑bool flag=false;QString text = QInputDialog::getItem(this, dlgTitle,txtLabel,items,curIndex,editable,&flag);if (flag && !text.isEmpty()){ui->plainTextEdit->appendPlainText(text);}
}

代码运行后点击单选框输入按钮,则可弹出单选框窗体,读者可选择对应的选项,如下所示;

2.1 QFileDialog

QFileDialog 类用于打开和保存文件的标准对话框。它提供了用户友好的界面,使得用户可以轻松地选择文件或目录,在使用时同样需要导入#include <QFileDialog>头文件。

以下是 QFileDialog 类的一些常用方法的说明和概述,以表格形式列出:

方法描述
getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)打开文件对话框,获取用户选择的文件名。
getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)打开文件对话框,获取用户选择的多个文件名。
getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)保存文件对话框,获取用户输入的文件名。
getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnlyDontResolveSymlinks)用于在文件系统中获取现有目录的路径。
getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnlyDontResolveSymlinks)用于在文件系统中获取现有目录的路径。
getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)保存文件对话框,获取用户输入的文件的 URL。
getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)打开文件对话框,获取用户选择的文件的 URL。
getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)打开文件对话框,获取用户选择的多个文件的 URL。
getSaveFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, Options options = 0)保存文件对话框,获取用户输入的多个文件的 URL。
setLabelText(QFileDialog::DialogLabel label, const QString &text)设置对话框中指定标签的文本。
setLabelText(QFileDialog::DialogLabel label, const QUrl &url)设置对话框中指定标签的文本为 URL。
setOption(QFileDialog::Option option, bool on = true)启用或禁用对话框的指定选项。
setOptions(QFileDialog::Options options)设置对话框的选项。
setFileMode(QFileDialog::FileMode mode)设置对话框的文件模式(打开、保存、目录选择等)。
setAcceptMode(QFileDialog::AcceptMode mode)设置对话框的接受模式,是打开文件还是保存文件。
setViewMode(QFileDialog::ViewMode mode)设置对话框的视图模式,如详细视图、图标视图等。
setDirectory(const QString &directory)设置对话框打开时的默认目录。
setDirectoryUrl(const QUrl &directory)设置对话框打开时的默认目录的 URL。
setFilter(const QString &filter)设置对话框的文件类型过滤器,如"文本文件 (.txt);;所有文件 ()"。
setNameFilter(const QString &filter)设置对话框的文件名过滤器,如"*.txt"。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。
setLabelText(QFileDialog::DialogLabel label, const QString &text)设置对话框中指定标签的文本。
setLabelText(QFileDialog::DialogLabel label, const QUrl &url)设置对话框中指定标签的文本为 URL。
setOption(QFileDialog::Option option, bool on = true)启用或禁用对话框的指定选项。
setOptions(QFileDialog::Options options)设置对话框的选项。
setFileMode(QFileDialog::FileMode mode)设置对话框的文件模式(打开、保存、目录选择等)。
setAcceptMode(QFileDialog::AcceptMode mode)设置对话框的接受模式,是打开文件还是保存文件。
setViewMode(QFileDialog::ViewMode mode)设置对话框的视图模式,如详细视图、图标视图等。
setDirectory(const QString &directory)设置对话框打开时的默认目录。
setDirectoryUrl(const QUrl &directory)设置对话框打开时的默认目录的 URL。
setFilter(const QString &filter)设置对话框的文件类型过滤器,如"文本文件 (.txt);;所有文件 ()"。
setNameFilter(const QString &filter)设置对话框的文件名过滤器,如"*.txt"。
setDefaultSuffix(const QString &suffix)设置默认的文件后缀,用于在用户未指定文件后缀时追加到文件名。
setMimeTypeFilters(const QStringList &filters)设置对话框的 MIME 类型过滤器。
setSidebarUrls(const QList<QUrl> &urls)设置对话框侧边栏的 URL 列表。
setProxyModel(QAbstractProxyModel *proxyModel)设置对话框使用的代理模型。
setHistory(const QStringList &paths)设置对话框历史记录的路径列表。

这些方法提供了一系列功能,包括打开文件、保存文件、选择目录等,以及对对话框的一些属性进行设置。这样,开发者可以方便地使用这些方法构建出符合应用需求的文件对话框。需要注意的是,这些方法中的许多参数都有默认值,因此在大多数情况下,开发者可以选择性地调用这些方法。

2.1.1 选择文件

在选择单个文件时可以通过调用getOpenFileName方法实现,QFileDialog::getOpenFileName 是 Qt 中用于显示打开文件对话框并获取用户选择的文件名的静态方法。它通常用于在用户需要选择一个文件进行打开操作时,例如加载文件等场景。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • dir: 默认的目录路径。
  • filter: 文件类型过滤器,用于筛选可打开的文件类型。可以使用分号分隔多个过滤器,例如 "Text Files (*.txt);;All Files (*)"

方法返回用户选择的文件名,如果用户取消了对话框,则返回一个空字符串。你可以根据需要调整过滤器、默认目录等参数,以满足你的具体需求。

通过最后一个参数来指定需要打开的文件类型,通常可传入一组字符串来实现过滤,当打开后可以通过aFileName拿到文件具体路径,代码如下;

void MainWindow::on_pushButton_file_clicked()
{QString curPath=QDir::currentPath();                                       // 获取系统当前目录//  QString  curPath=QCoreApplication::applicationDirPath();               // 获取应用程序的路径QString dlgTitle="选择一个文件";                                             // 对话框标题QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*)";  // 文件过滤器QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,curPath,filter);if (!aFileName.isEmpty()){ui->plainTextEdit->appendPlainText(aFileName);}
}

打开效果图如下所示;

同理,当我们需要选择多个文件并打开时只需要将QString修改为QStringList这样当文件被打开后则可以通过循环输出fileList列表来获取所有路径信息,如下代码所示;

void MainWindow::on_pushButton_multiple_clicked()
{// QString curPath=QCoreApplication::applicationDirPath();                // 获取应用程序的路径QString curPath=QDir::currentPath();                                      // 获取系统当前目录QString dlgTitle="选择多个文件";                                            // 对话框标题QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*)"; // 文件过滤器QStringList fileList=QFileDialog::getOpenFileNames(this,dlgTitle,curPath,filter);for (int i=0; i<fileList.count();i++){// 循环将文件路径添加到列表中ui->plainTextEdit->appendPlainText(fileList.at(i));}
}

在选择时可以通过拖拽选中的方式选择多个文件,如下图所示;

2.1.2 选择目录

选择目录时可以调用getExistingDirectory方法,QFileDialog::getExistingDirectory 是 Qt 中用于显示选择目录对话框并获取用户选择的目录的静态方法。它通常用于在用户需要选择一个目录时,例如保存文件到特定目录或加载文件等场景。

方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • dir: 默认的目录路径。
  • options: 对话框的选项。在示例中,使用了 QFileDialog::ShowDirsOnly 表示只显示目录,并且 QFileDialog::DontResolveSymlinks 表示不解析符号链接。

方法返回用户选择的目录路径,如果用户取消了对话框,则返回一个空字符串。你可以根据需要调整默认目录、选项等参数,以满足你的具体需求。

void MainWindow::on_pushButton_dirfile_clicked()
{QString curPath=QCoreApplication::applicationDirPath();    // 获取应用程序的路径// QString curPath=QDir::currentPath();                    // 获取系统当前目录// 调用打开文件对话框打开一个文件QString dlgTitle="选择一个目录";                             // 对话框标题QString selectedDir=QFileDialog::getExistingDirectory(this,dlgTitle,curPath,QFileDialog::ShowDirsOnly);if (!selectedDir.isEmpty()){ui->plainTextEdit->appendPlainText(selectedDir);}
}

选择目录输出效果图如下所示;

2.1.3 保存文件

保存文件可以通过调用getSaveFileName方法来实现,QFileDialog::getSaveFileName 是 Qt 中用于显示保存文件对话框并获取用户选择的文件名的静态方法。它通常用于在用户将文件保存到磁盘时获取文件的保存路径。

该方法的参数包括:

  • parent: 对话框的父窗口。传入 nullptr 表示没有父窗口。
  • caption: 对话框的标题。
  • dir: 默认的目录路径。
  • filter: 文件类型过滤器,用于筛选可保存的文件类型。可以使用分号分隔多个过滤器,例如 "Text Files (*.txt);;All Files (*)"

方法返回用户选择的文件名,如果用户取消了对话框,则返回一个空字符串。你可以根据需要调整过滤器、默认目录等参数,以满足你的具体需求。

void MainWindow::on_pushButton_save_clicked()
{QString curPath=QCoreApplication::applicationDirPath();                  // 获取应用程序的路径QString dlgTitle="保存文件";                                              // 对话框标题QString filter="文本文件(*.txt);;h文件(*.h);;C++文件(.cpp);;所有文件(*.*)"; // 文件过滤器QString aFileName=QFileDialog::getSaveFileName(this,dlgTitle,curPath,filter);if (!aFileName.isEmpty()){ui->plainTextEdit->appendPlainText(aFileName);}
}

保存文件对话框如下图所示,当点击后则可以将文件保存到特定目录下;

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

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

相关文章

腾讯云Linux云服务器禁Ping设置

腾讯云Linux服务器默认是允许ping包的&#xff0c;但是在一些情况下为了安全考虑起见&#xff0c;我们都会把服务器设置为禁ping的模式。 1、首先检查Linux服务器当前是否禁ping 执行命令&#xff1a; cat /proc/sys/net/ipv4/icmp_echo_ignore_all 备注&#xff1a; 0----代…

Next.js加载异步组件 骨架屏

Next.js 中有两种处理页面加载的方式&#xff0c;一种是 Loading UI 一种是 Streaming。接下来我将介绍这两种的区别&#xff0c;以及实际的业务场景。 当我们进入某个页面时&#xff0c;需要获取页面数据&#xff0c;可能是从数据库读取也有可能是 API 服务&#xff0c;总之这…

【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; IT杂谈 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. AIGC 技术的概述和发展趋势1.1 AIGC 技术的概述1.2 AIGC 技术的发展趋势 二. AIGC 与元宇…

【C语言(十)】

字符函数和字符串函数 一、字符分类函数 C语言中有⼀系列的函数是专门做字符分类的&#xff0c;也就是⼀个字符是属于什么类型的字符的。这些函数的使用都需要包含⼀个头文件是 ctype.h 这些函数的使用方法非常类似&#xff0c;我们就讲解⼀个函数的事情&#xff0c;其他的非…

华为OD机试真题-多段线数据压缩-2023年OD统一考试(C卷)

题目描述: 下图中,每个方块代表一个像素,每个像素用其行号和列号表示。 为简化处理,多段线的走向只能是水平、竖直、斜向45度。 上图中的多段线可以用下面的坐标串表示:(2, 8), (3, 7), (3, 6), (3, 5), (4, 4), (5, 3), (6, 2), (7, 3), (8, 4), (7, 5)。 但可以发现,这…

springboot整合webflux访问openai接口报错

报错信息: org.springframework.web.reactive.function.client.WebClientRequestException: 远程主机强迫关闭了一个现有的连接。; nested exception is java.io.IOException: 远程主机强迫关闭了一个现有的连接。at org.springframework.web.reactive.function.client.Excha…

栈和队列的实现(Java篇)

文章目录 一、栈的概念二、栈的实现2.1压栈(push)2.2出栈(pop)2.3获取栈顶元素(peek)2.4判断栈是否为空(isEmpty)栈的实现测试 三、队列的概念四、队列的实现4.1入队(offer)4.2出队(poll)4.3判断队列是否为空4.4获取对头元素队列的实现测试 五、循环队列5.1入队5.2出队5.3获取队…

MAMOS蓝图: 打造自己的质量工程

针对团队中存在的问题&#xff0c;构造MAMOS蓝图&#xff0c;从而以系统化的方式识别并解决问题。本文将针对减少等待时间这一问题举例说明MAMOS蓝图的组成和使用方式。原文: MAMOS Blueprint: Build your own for Quality at Speed 很难完全摆脱等待时间。 我认为没有必要争论…

vue脚手架安装及使用

准备工作 安装node安装cnpm cnpm是npm的“廉价平替” 提高安装速度 npm install -g cnpm --registryhttps://registry.npm.taobao.org 安装脚手架 安装Vue脚手架 cnpm install -g vue/cli 用vue脚手架创建vue项目 找好创建项目的位置 创建项目 vue create test (test为项…

用代码写uml并在线生成uml图

可以用PlantUml写uml,并在线生成uml图。 startuml start:登录系统; if (用户名和密码正确?) then (yes):进入系统首页;:展示主菜单; else (no):显示登录错误;stop endif:选择模块; partition "课程信息" {:查看课程列表;:查看课程详情; } partition "课程签到…

【计算机视觉】SIFT

在边缘提取的时候&#xff0c;用高斯一阶导对信号进行卷积&#xff0c;响应值最大的就是边界如果用高斯二阶导对信号进行卷积&#xff0c;0点就是边界点&#xff08;二阶导等于0的点&#xff0c;对应一阶导的极值点&#xff09; 如果用高斯二阶导在不同的信号上进行卷积&#x…

python requests.Session()的使用

cookies and jar 你可以把Session理解成为它内部提供了一系列方法&#xff0c;用来存储状态。这里所说的状态&#xff0c;其实大部分情况下指的就是cookies。 比如使用浏览器时候&#xff0c;你在一个标签页内登陆了&#xff0c;另一个标签页其实就可以读取cookies了&#xf…

口袋参谋:新品上架,如何获取更多免费流量?

​新品上架 如何获得更多的免费流量&#xff1f; 我相信 这是99.999%的商家&#xff0c;都关心的问题&#xff01; 今天我就来和大家好好说道说道。 01 流量的组成 新品本身是没有权重的&#xff0c;买家搜不到我们。 如果想要获得更多的免费流量&#xff0c;我们就要知道…

基础算法(1):排序(1):选择排序

今天对算法产生了兴趣&#xff0c;开始学习基础算法&#xff0c;比如排序&#xff0c;模拟&#xff0c;贪心&#xff0c;递推等内容&#xff0c;算法是很重要的&#xff0c;它是解决某个问题的特定方法&#xff0c;程序数据结构算法&#xff0c;所以对算法的学习是至关重要的&a…

出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 执行Nacos中的startup.cmd的时候出现闪退,于是在该脚本的最后一行添加pause,查看因为什么原因闪退 出现的bug如下所示:Error:Unable to access jarfile xxxx\target\nacos-server.jar 截图如下所示: 查看内部文件夹,…

塑料检查井配套开发了注塑成型的井盖、井筒、井座

塑料检查井配套开发的注塑成型井盖、井筒、井座——城市基础设施的新选择 随着城市化进程的加快&#xff0c;城市基础设施建设的品质与效率日益受到重视。在这个背景下&#xff0c;塑料检查井及其配套开发的注塑成型井盖、井筒、井座以其独特的优势&#xff0c;正在逐渐取代传…

k8s debug 浅谈

一 k8s debug 浅谈 说明&#xff1a; 本文只是基于对kubectl debug浅显认识总结的知识点,后续实际使用再补充案例 Kubernetes 官方出品调试工具上手指南(无需安装&#xff0c;开箱即用) debug-application 简化 Pod 故障诊断: kubectl-debug 介绍 1.18 版本之前需要自己…

DevEco Studio自定义代码颜色

这里以ArkTS代码颜色举例 进入设置&#xff08;快捷键CtrlAltS&#xff09; 选择Editor > Color Scheme > JavaScript 由于之前用习惯VsCode了&#xff0c;这里以注释颜色举例&#xff0c;变为绿色。 上面说的不是以ArkTS代码颜色举例吗&#xff1f;为什么选择JavaScr…

054:vue工具 --- BASE64加密解密互相转换

第054个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

探索泰勒级数在机器学习中的作用:从函数逼近到模型优化

一、介绍 泰勒级数是数学中的一个基本概念&#xff0c;在机器学习领域有着重要的应用。本文将探讨泰勒级数的基础知识、它在机器学习中的相关性以及一些具体应用。 揭开复杂性&#xff1a;利用泰勒级数增强机器学习应用的理解和效率。 二、理解泰勒级数 在数学中&#xff0c;泰…