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);
    }
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java项目-瑞吉外卖Day5

视线新增套餐功能&#xff1a; 创建SetmealDish&#xff0c;SetmealDto类&#xff0c;与相关的mapper&#xff0c;service&#xff0c;serviceImpl&#xff0c;controller类。 Setmeal表示套餐&#xff0c;SetmealDish表示套餐对应的菜品。 交互过程&#xff1a; 前端请求&a…

XXE实体注入漏洞知识点

什么是XXE漏洞&#xff1f; XXE&#xff0c;即XML外部实体注入漏洞&#xff0c;XXE 漏洞发生在应用程序解析 XML 输入时&#xff0c; 没有禁止外部实体的加载 &#xff0c;导致可加载恶意外部文件&#xff0c;造成文件读取、命令执行、攻击内网网站等危险。 XXE漏洞触发的点…

网络(九)三层路由、DHCP以及VRRP协议介绍

目录 一、三层路由 1. 定义 2. 交换原理 3. 操作演示 3.1 图示 3.2 LSW1新建vlan10、20、30&#xff0c;分别对应123接口均为access类型&#xff0c;接口4为trunkl类型&#xff0c;允许所有vlan通过 3.3 LSW2新建vlan10、20、30&#xff0c;配置接口1为trunk类型&…

索尼(ILCE-7M3)MP4文件只能播放前两分钟修复案例

索尼的ILCE-7M3是一款经典设备&#xff0c;其HEVC编码效果是比较不错的&#xff0c;因此受到很多专业人士的青睐。之前我们说过很多索尼摄像机断电生成RSV文件修复的案例&#xff0c;今天来讲一个特殊的&#xff0c;文件已经正常封装但仅能播放前两分钟多一点的画面。 故障文件…

《Linux C编程实战》笔记:文件属性操作函数

获取文件属性 stat函数 在shell下直接使用ls就可以获得文件属性&#xff0c;但是在程序里应该怎么获得呢&#xff1f; #include<sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name,struct stat *buf); int fstat(i…

spring 笔记四 SpringMVC 组件解析

文章目录 SpringMVC 组件解析SpringMVC的执行流程SpringMVC的执行流程SpringMVC组件解析SpringMVC注解解析 SpringMVC 组件解析 SpringMVC的执行流程 SpringMVC的执行流程 ① 用户发送请求至前端控制器DispatcherServlet。 ② DispatcherServlet收到请求调用HandlerMapping处…

图像识别完整项目之Swin-Transformer,从获取关键词数据集到训练的完整过程

0. 前言 图像分类的大部分经典神经网络已经全部介绍完&#xff0c;并且已经作了测试 代码已经全部上传到资源&#xff0c;根据文章名或者关键词搜索即可 LeNet &#xff1a;pytorch 搭建 LeNet 网络对 CIFAR-10 图片分类 AlexNet &#xff1a; pytorch 搭建AlexNet 对花进行分…

SpringBoot上传图片文件到七牛云

准备工作 maven pom.xml添加七牛云的sdk依赖 <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>7.2.27</version></dependency>配置项 七牛云上传必要的配置有&#xff1a;acces…

四舍五入浮点数

1.题目如下&#xff1a; 2.方法一&#xff1a; 直接取出小数部分第一位来判断。 1. 先乘以10。 2. 强制类型转换为整型&#xff0c;去掉小数部分。 3. 再模10&#xff0c;相当于取出原数的小数第一位。 代码实现&#xff1a; int way1(double n) {int a (int)(n * 10);int b…

C++初学者使用Dev-C++5.11必备的小技巧

一、安装的软件是英文怎么办?陈老师来帮你解决! 步骤1:打开软件,不用我交了吧,看见一个单词长的像 Tools,看见了吧 步骤2:对,找到那个红色框子框起来的单词,最长的那个 步骤3:对,继续选择红色框子里的简体中文/Chinese,不是下面那个,注意,不要选错哟 步骤4:点击…

【️Java和C++主要的区别有哪些?各有哪些优缺点?】

✅Java和C主要的区别有哪些&#xff1f;各有哪些优缺点&#xff1f; ✅Java和C分别代表两种类型的语言✅ C是编译型语言✅ Java是解释型语言✅ 两者更多的主要区别如下&#xff1a; ✅知识拓展✅Java与C的参数方法有什么区别&#xff1f; ✅Java和C分别代表两种类型的语言 Java…

LeetCode day24

LeetCode day24 今天主打一个快乐happy(▽ʃ♡ƪ)&#xff0c;主要是今天写哈夫曼树被经典文件读取坑麻了&#xff08;为啥绝对路径能读取&#xff0c;相对不行。罢了&#xff09; 一个中等题&#xff0c;但是咋感觉很小学捏。。。 2177. 找到和为给定整数的三个连续整数 相…

消息队列有哪些应用场景?

分布式系统不同模块之间的通信&#xff0c;除了远程服务调用以外&#xff0c;消息中间件是另外一个重要的手段&#xff0c;在各种互联网系统设计中&#xff0c;消息队列有着广泛的应用。从本文开始&#xff0c;专栏进入分布式消息的模块&#xff0c;将讨论消息队列使用中的高频…

C++入门篇

呀哈喽&#xff0c;我是结衣。 了解完C的发展历程&#xff0c;我们当然也要会用C啊。今天这篇博客就是来帮助我们来入门C的&#xff0c;当然要入门C当然也要先学会C语言啦。在我学习C的过程中我会一直把C博客更新下去的。 C关键字 我们都知道C语言是有32个关键字的&#xff0…

Linux之进程(四)(进程地址空间)

目录 一、程序地址空间 二、进程地址空间 1、概念 2、写时拷贝 3、为什么要有进程地址空间 四、总结 一、程序地址空间 我们先来看看下面这张图。这张图是我们在学习语言时就见到过的内存区域划分图。 下面我们在Linux下看一看内存区域是不是也是这么划分的。 可见在Li…

EIS(防抖):meshflow算法

视频防抖的应用 对视频防抖的需求在许多领域都有。 这在消费者和专业摄像中是极其重要的。因此&#xff0c;存在许多不同的机械、光学和算法解决方案。即使在静态图像拍摄中&#xff0c;防抖技术也可以帮助拍摄长时间曝光的手持照片。 在内窥镜和结肠镜等医疗诊断应用中&…

Linux下C++程序瘦身

目录 一.前言二.如何瘦身三.如何读取调试信息文件四.其他 一.前言 我们知道&#xff0c;C程序如果带着调试信息的话会比较大&#xff0c;所以一般发布版本都会去掉调试信息&#xff0c;但是我们又希望如果程序崩溃了可以使用core转储文件进行调试&#xff0c;如果不带调试信息…

[已解决】uniapp内置插件,editor富文本报错(附quill.min.js、image-resize.min.js文件)

在使用uni-app运行内置插件editor时&#xff0c;无法输入内容&#xff0c;控制台报错 原因&#xff1a;查看官网得知&#xff0c;需动态引入quill.min.js、image-resize.min.js文件 解决方法&#xff1a; 1.下载quill.min.js、image-resize.min.js到项目static/eidtor文件中 链…

有没有手机电脑同步的工作时间管理软件?

越来越多的职场人士感到每天的工作任务是比较多的&#xff0c;而工作时间又是有限的&#xff0c;所以经常时间不够用。因此&#xff0c;对于上班族来说&#xff0c;高效的时间管理是提高工作效率、按时完成任务的关键。为了满足这一需求&#xff0c;很多网友都在寻找一款既能在…

Golang. channel的关闭

使用内置函数close可以关闭channel&#xff0c;当channel关闭后&#xff0c;就不能再向channel写数据了&#xff0c;但是仍然可以从channel中读取数据。 一旦将channel关闭了&#xff0c;只能读不能写。相当于关闭管道就数据不能进入到队列里面了&#xff0c;只能进行读操作&a…