Qt学习11:Dialog对话框操作总结

2023-11-16

文章首发于我的个人博客:欢迎大佬们来逛逛
完整Qt学习项目地址:源码地址

QDialog

Qt中使用QDialog来实现对话框,QDialog继承自QWidget,对话框分为**三种**:

  • 模态对话框:在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭
  • 半模态对话框:又叫做无模式对话框,即弹出非模态对话框时,用户仍然可以对其他窗口进行操作,不会因为这个对话框未关闭就不能操作其他窗口。
  • 非模态对话框:半模态对话框区别于模态与非模态对话框,或者说是介于两者之间,也就是说半模态对话框会阻塞窗口的响应,但是不会影响后续代码的执行

常用操作:

  • exec:显示模态对话框
  • open:显示半模态对话框
  • show:显示非模态对话框
  • setModal:设置模式,如果为true,则show显示的是模态对话框,如果为false,则show显示的是非模态对话框,默认为false
  • setSizeGripEnabled:设置显示右下角的拖动图标
// 构造函数
QDialog::QDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());

void setSizeGripEnabled(bool)   //设置启用大小手柄

[virtual slot] void open()                  // 半模态显示窗口
[virtual slot] int QDialog::exec();         // 模态显示窗口

// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Accepted
[virtual slot] void QDialog::accept();
// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Rejected
[virtual slot] void QDialog::reject();
// 关闭对话框并将其结果代码设置为r。finished()信号将发出r;如果r是QDialog::Accepted 或 QDialog::Rejected,则还将分别发出accept()或Rejected()信号。
[virtual slot] void QDialog::done(int r);

常用信号:

void QDialog::accepted();
void QDialog::rejected();
void QDialog::finished(int result);示例

简单示例:

如下显示的是一个半模态对话框

void MainWindow::actionOnHalfDialog()
{
    //半模态对话框
    QDialog* dlg=new QDialog(this);
    dlg->open(); //不会阻塞程序,即可以执行下面的代码
    dlg->setAttribute(Qt::WA_DeleteOnClose); //关闭隐藏
    qInfo()<<__FUNCTION__;
}

QDialogButtonBox

QDialogButtongBox类是一个包含很多按钮的控件,在对话框中有多个按钮需要分组排列的按钮时,可以使用QDialogButtongBox类。

简而言之就是在同一个对话框中添加按钮,类似于QButtonGroup。

常用函数:

  • addButton:添加按钮,注意其具有重载,一个是系统的标准按钮:StandardButtons ;另一个是具有一个**ButtonRole**的属性,即可以指定按钮的角色,然后可以根据不同的角色进行区分操作。
  • buttonRole:返回某个按钮的角色
  • buttons:返回一个QList,其包含所有的按钮。
void addButton(QAbstractButton *button, QDialogButtonBox::ButtonRole role)
QPushButton *addButton(const QString &text, QDialogButtonBox::ButtonRole role)
QPushButton *addButton(QDialogButtonBox::StandardButton button)
void setStandardButtons(QDialogButtonBox::StandardButtons buttons)

常用信号:

void accepted()     //当单击按钮框中的按钮时将发出此信号,只要该按钮是用AcceptRole或YesRole定义的。
void clicked(QAbstractButton *button)   //当单击按钮框中的按钮时,将发出此信号,具体按钮由button指定
void helpRequested() //当按钮框中的按钮被单击时,这个信号就会发出,只要它是用HelpRole定义的。
void rejected()      //当单击按钮框中的按钮时,此信号将被触发,只要它是用RejectRole或NoRole定义的

简单示例:

void MainWindow::actionOnNoDialog()
{
    //非模态对话框
    QDialog* dlg=new QDialog(this);
    dlg->setSizeGripEnabled(true); //设置抓取手柄

    //添加对话框按钮组
    auto* _dbbox=new QDialogButtonBox(dlg);
    //设置系统标准按钮
    _dbbox->addButton(QDialogButtonBox::StandardButton::Ok);
    _dbbox->addButton(QDialogButtonBox::StandardButton::Yes);
    _dbbox->addButton(QDialogButtonBox::StandardButton::No);
    //设置角色
    _dbbox->addButton("选择",QDialogButtonBox::ApplyRole);

    //系统标准按钮直接具有信号
    connect(_dbbox,&QDialogButtonBox::accepted,this,[=](){
        qInfo()<<"accepted";
    });
    connect(_dbbox,&QDialogButtonBox::rejected,this,[=](){
        qInfo()<<"rejected";
    });

    //自定义的角色需要获取这个角色然后进行判断操作
    connect(_dbbox,&QDialogButtonBox::clicked,this,[=](QAbstractButton* btn){
        if (_dbbox->buttonRole(btn)==QDialogButtonBox::ApplyRole){
            dlg->accept();
            dlg->hide();
        }
    });
    dlg->show();
    qInfo()<<__FUNCTION__;
}

在这里插入图片描述


QMessageBox

在这里插入图片描述

QMessageBox 对话框类是 QDialog 类的子类, 通过这个类可以显示一些简单的提示框.

用于展示警告、错误、问题等信息。

关于这个类我们只需要掌握一些静态方法的使用就可以了。

常用操作:

  • about:关于提示框
  • critical:严重警告提示框
  • information:提示框
  • question:问题提示框
  • warning:警告提示框
void MainWindow::testMessage()
{
    //QMessageBox::aboutQt(this);
    //QMessageBox::about(this,"关于","<a href='https://www.helloylh.com'>异性交友网站</a>");
    //QMessageBox::critical(this,"致命错误","请重启电脑",QMessageBox::StandardButton::Cancel);

    if (QMessageBox::StandardButton::Ok == QMessageBox::information(this,"提示","请重启电脑!")){
        qInfo()<<"OK!";
    }
    else{
        qInfo()<<"NO!";
    }

}

QFileDialog

在这里插入图片描述

QFileDialog 对话框类是 QDialog 类的子类, 通过这个类可以选择要打开/保存的文件或者目录。

关于这个类我们只需要掌握一些静态方法的使用就可以了。

常用操作:

  • getExistingDirectory:获取已存在的目录路径
  • getOpenFileName:获取打开的文件的名字
  • getOpenFileUrl:获取文件的url
  • getSaveFileName:获取保存文件的名字,可以用于文件的保存
void MainWindow::testQFileDialog()
{
    //获取当前存在的目录
    //auto Dir = QFileDialog::getExistingDirectory(this,"请选择文件","C:\\users");
    //qInfo()<<Dir;

    //获取url形式
    //auto DirUrl=QFileDialog::getExistingDirectoryUrl();
    //qInfo()<<DirUrl;

    //QString filename = QFileDialog::getOpenFileName(this,"选择文件","."
    //    ,"images (*.png *.jpg *.bmp);;Video(*.avi *.mp4 *.wav)");
    //qInfo()<<filename;

    QStringList filenames = QFileDialog::getOpenFileNames(this,"选择文件","./");
    qInfo()<<filenames;
}

注意我们可以为选择的文件添加过滤器

直接在其静态成员函数的:const QString &filter = QString() 进行指定即可

如:

  • images (*.png *.bmp *.jpg)
  • exe (*.exe)
  • vedio (*.avi *.mp4)

QFontDialog

在这里插入图片描述

设置字体的对话框。

QFont::QFont();
/*
参数:
    - family: 本地字库中的字体名, 通过 office 等文件软件可以查看
    - pointSize: 字体的字号
    - weight: 字体的粗细, 有效范围为 0 ~ 99
    - italic: 字体是否倾斜显示, 默认不倾斜
*/
QFont::QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false);

// 设置字体
void QFont::setFamily(const QString &family);
// 根据字号设置字体大小
void QFont::setPointSize(int pointSize);
// 根据像素设置字体大小
void QFont::setPixelSize(int pixelSize);
// 设置字体的粗细程度, 有效范围: 0 ~ 99
void QFont::setWeight(int weight);
// 设置字体是否加粗显示
void QFont::setBold(bool enable);
// 设置字体是否要倾斜显示
void QFont::setItalic(bool enable);

// 获取字体相关属性(一般规律: 去掉设置函数的 set 就是获取相关属性对应的函数名)
QString QFont::family() const;
bool QFont::italic() const;
int QFont::pixelSize() const;
int QFont::pointSize() const;
bool QFont::bold() const;
int QFont::weight() const;

静态函数:

  • setFont …
[static] QFont QFontDialog::getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions());

[static] QFont QFontDialog::getFont(bool *ok, QWidget *parent = nullptr);窗口字体的设置

示例如下:

我们为一个Label设置字体。

void MainWindow::testFontDialog()
{
    lab=new QLabel(this);
    lab->setText("测试字体 helloylh");
    lab->setGeometry(200,200,200,200);
    auto btn=new QPushButton("选择字体",this);
    btn->setGeometry(10,50,80,30);
    connect(btn,&QPushButton::clicked,this,[=](){
        bool ok=false;
        auto font = QFontDialog::getFont(&ok,this);
        lab->setFont(font);
    });

}

QColorDialog

在这里插入图片描述

配合字体选择框一起使用,可以指定颜色。它是一个颜色选择框。

// 构造函数
QColor::QColor(Qt::GlobalColor color);
QColor::QColor(int r, int g, int b, int a = ...);
QColor::QColor();

// 参数 red, green, blue, alpha 取值范围是 0-255
void QColor::setRed(int red);
void QColor::setGreen(int green);
void QColor::setBlue(int blue);
void QColor::setAlpha(int alpha);
void QColor::setRgb(int r, int g, int b, int a = 255);

int QColor::red() const;
int QColor::green() const;
int QColor::blue() const;
int QColor::alpha() const;
void QColor::getRgb(int *r, int *g, int *b, int *a = nullptr) const;

静态函数:

// 弹出颜色选择对话框, 并返回选中的颜色信息
[static] QColor QColorDialog::getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions());

测试代码:

label设置颜色。

void MainWindow::testQColorDialog()
{
    auto btn=new QPushButton("选择颜色",this);
    btn->setGeometry(80,50,80,30);
    connect(btn,&QPushButton::clicked,this,[=](){
        auto color=QColorDialog::getColor();
        lab->setStyleSheet(QString("color: rgb(%1,%2,%3)").arg(color.red()).arg(color.green()).arg(color.blue()));
    });
}

QInputDialog

[static] double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());

[static] int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());

[static] QString QInputDialog::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)

[static] QString QInputDialog::getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone);

[static] QString 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(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone);

QProgressDialog

// 构造函数
/*
参数:
    - labelText: 对话框中显示的提示信息
    - cancelButtonText: 取消按钮上显示的文本信息
    - minimum: 进度条最小值
    - maximum: 进度条最大值
    - parent: 当前窗口的父对象
    - f: 当前进度窗口的flag属性, 使用默认属性即可, 无需设置
*/
QProgressDialog::QProgressDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
QProgressDialog::QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());

// 设置取消按钮显示的文本信息
[slot] void QProgressDialog::setCancelButtonText(const QString &cancelButtonText);

// 公共成员函数和槽函数
QString QProgressDialog::labelText() const;
void QProgressDialog::setLabelText(const QString &text);

// 得到进度条最小值
int QProgressDialog::minimum() const;
// 设置进度条最小值
void QProgressDialog::setMinimum(int minimum);

// 得到进度条最大值
int QProgressDialog::maximum() const;
// 设置进度条最大值
void QProgressDialog::setMaximum(int maximum);

// 设置进度条范围(最大和最小值)
[slot] void QProgressDialog::setRange(int minimum, int maximum);

// 得到进度条当前的值
int QProgressDialog::value() const;
// 设置进度条当前的值
void QProgressDialog::setValue(int progress);

bool QProgressDialog::autoReset() const;
// 当value() = maximum()时,进程对话框是否调用reset(),此属性默认为true。
void QProgressDialog::setAutoReset(bool reset);

bool QProgressDialog::autoClose() const;
// 当value() = maximum()时,进程对话框是否调用reset()并且隐藏,此属性默认为true。
void QProgressDialog::setAutoClose(bool close);

// 判断用户是否按下了取消键, 按下了返回true, 否则返回false
bool wasCanceled() const;

// 重置进度条
// 重置进度对话框。wascancelled()变为true,直到进程对话框被重置。进度对话框被隐藏。
[slot] void QProgressDialog::cancel();
// 重置进度对话框。如果autoClose()为真,进程对话框将隐藏。
[slot] void QProgressDialog::reset();

// 信号
// 当单击cancel按钮时,将发出此信号。默认情况下,它连接到cancel()槽。
[signal] void QProgressDialog::canceled();

// 设置窗口的显示状态(模态, 非模态)
/*
参数:
    Qt::NonModal  -> 非模态
    Qt::WindowModal -> 模态, 阻塞父窗口
    Qt::ApplicationModal -> 模态, 阻塞应用程序中的所有窗口
*/
void QWidget::setWindowModality(Qt::WindowModality windowModality);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt学习11:Dialog对话框操作总结 的相关文章

  • qmake 和 QT_INSTALL_PREFIX。如何为 Qt 库选择新位置?

    我是 qmake 的新手 我正在尝试构建一个现有的应用程序 Qt 最初安装在 usr local lib Qt 4 3 5 中 qmake query QT INSTALL PREFIX 返回该路径 我已将 Qt 库移动到另一个位置 生成的
  • Qt QML ComboBox 覆盖滚轮事件

    有没有办法覆盖 ComboBox MouseArea 以忽略滚轮事件而不是更改当前索引 ComboBox 本身没有选项可以更改滚轮焦点行为 到目前为止 我尝试使用如下代码覆盖 CB MouseArea 的 onWheel ComboBox
  • Qt 的 sysroot 和前缀选项的实际示例是什么

    我正在查看可以运行的所有选项configureQt 提供的脚本 特别是 qt everywhere opensource src 5 2 0 经过大量搜索后 我确定这些东西充其量记录很少 所以我希望我能得到一些帮助 当我查看描述时prefi
  • QCalendarWidget - 如何突出显示日期

    我有一个QList
  • 使用 Qt 进行拖放:悬停时了解目标应用程序 - 这可能吗?

    我目前正在探索从 Qt 应用程序拖放到未知目标应用程序的可能性 问题是 Qt 应用程序是否可以接收有关即将接收 drop 的应用程序的信息 例如进程名称或标题 一个 虚构的 示例可以是将绘图从 Qt 窗口拖动到文本编辑器或电子表格编辑器 在
  • QWebView / Qt WebKit 不会打开某些 SSL 页面;不允许重定向?

    在带有 Visual C 2008 SP1 的 Windows 7 上全新安装 Qt SDK 1 1 4 我正在使用 Qt Creator 为什么此代码无法加载某些网页 include
  • 使用带有 MSVC 2015 编译器的 QT Creator 5.8

    我是新来的C 和编程 我正在尝试做一个小项目 使用Qt and Qt Creator 我当时用的是MinGW compiler 但对于这个项目 我需要与MSVC compiler 因为我需要使用QtWebEngineWidgets I ha
  • 无法锚定到不是父级或同级 QML QtQuick 的项目

    我正在使用 QML 开发 python 桌面应用程序 我的 QML 文件中有这个 SplitView anchors fill parent orientation Qt Horizontal Rectangle color 272822
  • Qt Creator 中的按钮是否有隐藏属性?

    Qt Creator 属性托盘中是否有按钮的隐藏属性 我想找到一个 但找不到 我需要禁用一些按钮并隐藏一些按钮 我应该使用属性托盘还是在构造函数中进行 稍后在用户事件中 它们将被启用并显示 有些控件在调色板上具有 可见性 属性 有些则没有
  • 如何删除在设计器模式下创建的插槽?

    我已经创建了按钮cancelButton 然后我创建了函数槽on cancelButton clicked 使用上下文菜单项Go to slot 但是 过了一段时间 我删除了这个按钮 不再需要 并尝试删除该函数 但编译器给出错误undefi
  • Qt Designer 与手动编码

    每次我使用图形工具包开始一个项目时 第一个冲突就会发生在如何处理视觉设计和小部件布局的决定上 图形工具还是手动编码 这是一个非常棘手 主观的问题 因为大多数人会根据个人喜好来决定 它还很大程度上取决于图形工具的质量 在这种情况下 我想只关注
  • 无法隐藏 QMenu 对象 QMenu::setVisible()?

    我已经建立了一个QMenu MainMenu在我的上面MainWindow在我的应用程序中 大家都习惯了 我有以下QMenu主菜单 文件 编辑 SuperHeavyExpertMenus 设置 帮助 我想隐藏子树SuperHeaverExp
  • 关于 GUI 计时器显示后台线程已用时间的建议?

    Issue 我有一个 PyQt GUI 用户按下按钮即可启动后台线程 workerThread 它是从QThread 我想要一个计时器显示 以QLabel 显示自此以来已经过去了多少时间workerThread开始 我希望这个计时器在wor
  • 异步设计中如何知道哪个QNetworkReply属于QNetworkRequest?

    我可以轻松地用 C 进行异步设计 HttpResponseMessage response await httpClient GetAsync InputAddress Text run when request finished And
  • 删除 QComboBox“下拉”动画

    我正在使用 Qt 4 8 并且想在单击 QComboBox 时摆脱 下拉 动画 我也想稍微移动一下 到目前为止 我一直在考虑重新实现 showPopup 和 hidePopup 但不知道如何使其工作 此外 每次我尝试使用 CSS 进行移动或
  • 将项目添加到自定义组件的布局

    我有一个习惯Footer Component我想在 QML 应用程序的不同位置重用它 Rectangle color gold height 50 anchors bottom parent bottom left parent left
  • Windows 消息循环而不是 QApplication::exec() / QApplication::processEvents()

    我是否想念任何一个Qt如果我替换功能QApplication exec 使用标准 Windows 消息循环实现 这应该可以澄清我的意思 运行事件处理的常用 Qt 方式 int main int argc char argv QApplica
  • 安装多个版本的 Qt 库

    我在windows中安装了QtSDK 它的Qt库版本是4 7 0 现在我想为 mingw 和 VS2008 安装 Qt 库版本 4 8 2 我怎样才能做到这一点 如何向QtCreator引入多个版本 注意 我已经从以下位置下载了库http
  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi

随机推荐

  • 聚类算法——最大最小距离算法(python实现)

    每篇一句 You re gonna have to face your fear sooner or later 冰河世纪 最大最小距离算法 最大最小距离算法也成为小中取大距离算法 这种方法首先根据确定的距离阈值寻找聚类中心 然后根据最近邻
  • 获取和分析Dump的几种工具简介

    最近在进一步学习support技能的时候 了解到分析Dump的重要性 经过学习 做一些笔记 一 什么是Dump文件 Dump文件时进程的内存镜像 可以把程序的执行状态保存到Dump文件中 Dump文件分为内核模式Dump和用户模式Dump
  • SQL-labs的第26a关——空格和注释被过滤 延时盲注(Get)

    注意该关的or和and也被过滤了 1 判断闭合方式 输入语句 id 1 返回页面如下 我们猜测闭合符号是 再进行验证 输入语句 id 1 00 返回页面如下 依然报错 说明闭合符号除了 之外还有其他的符号 我们输入 id 1 00 返回页面
  • pgsql:远程连接时出现报错“发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录“,或者英文乱码

    问题 在用Navicat Premium远程连接pgsql时出现报错 发生致命错误 没有用于主机 用户 数据库 SSL关闭的pg hba conf记录 或者英文乱码 其实是与上述是同一个意思 解决方案 按提示找到pg安装目录下的 data
  • springboot 整合 redis

    springboot 整合 redis 1 导入依赖
  • {CTFshow} 萌新web1 详解

    练习ctf当然不止一个平台啦 所以我打算也写一写ctfshow的题目 好家伙 直接明了 就是让我审计代码 看完发现 我们要用get方式提交 flag在id 1000 但是直接提交id 1000会返回错误 所以我们需要再添加一个id用来防止被
  • springboot 访问远程服务器文件,springboot使用JSch远程读取sshd服务器上的文件

    JSch 是SSH2的一个纯Java实现 它允许你连接到一个sshd 服务器 使用端口转发 X11转发 文件传输等等 你可以将它的功能集成到你自己的 程序中 同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器 实现一个java工
  • 前后端分离ajax接收文件流的实践

    一般ajax post请求不能实现的原因 开始的想法 在页面上用jQuery的 post方法发送一个请求给服务器 然后服务器根据这个参数再生成相应的一个文件流返回给客户端 但是 在 post方法的回调函数中 只能处理xml json scr
  • 手机android端安装配置cpolar内网穿透

    cpolar作为一款强大的内网穿透工具 能够在不同操作系统平台中得到应用 真正打通了不同操作系统之间的围墙 让我们能方便的从一个操作平台中 读取到另一个操作平台中的数据 甚至对另一操作平台中运行的程序进行调试 今天 我们就为大家介绍 如何在
  • .Net Core缓存及问题规避

    目录 一 什么是缓存 二 客户端响应缓存 三 服务器端响应缓存 四 内存缓存 五 缓存穿透问题的规避 六 缓存雪崩问题的规避 七 缓存数据混乱的规避 八 分布式缓存 九 缓存方式的选择 一 什么是缓存 缓存是系统优化中简单又以有效的工具 只
  • 【C语言】小知识点

    Hello 各位小伙伴们 大家好啊 又和大家见面了 本期我会讲一点C语言的一些小知识点 希望大家可以学到有用的知识点哦 文章目录 Hello 各位小伙伴们 大家好啊 又和大家见面了 本期我会讲一点C语言的一些小知识点 希望大家可以学到有用的
  • "VT-x is disabled in BIOS"的解决办法

    当创建模拟器的时候发生了如下图的问题 解决办法 1 重启电脑 2 按F2进入BIOS 3 找到 Intel Virtual Technology 他这时会显示disable 按Enter把他改成enable即可 当时我在网页上寻找帮助时 好
  • 【华为OD机试真题】最左侧冗余覆盖子串(C++&java&python)100%通过率 超详细代码注释 代码优化

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 最左侧冗余覆盖子串 知识点滑窗 时间限制 1s 空间限制 256MB 限定语言 不限 题目描
  • TinyML构建卷积神经网络(CNN)模型声控Arduino机器车

    本教程介绍了如何将机器学习与 Arduino 结合使用 在微控制器上运行由TinyML构建的机器学习语音识别模型 控制Arduino机器车运行 要构建这个项目 至少有两个步骤 训练一个新的机器学习模型并使其适应在 Arduino 上运行 使
  • visio连接线和框图不好控制总跑跳问题

    方法1 视图点右下角小箭头 点开后在常规一栏把对齐和粘附的勾去掉就可以了 方法2 点开始 在连接线旁边有个 X 号 点击X号后按ctrl就可以用鼠标在任意地方设置连接点
  • replace()和replaceAll()的区别

    replace char oldChar char newChar 返回一个新的字符串 它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的 参数是字符串也成立 eg str replace 20 用 20 替换空
  • 狂神说SpringMVC 最全学习笔记

    SpringMVC 1 回顾MVC 1 1 什么是MVC MVC是模型 Model 视图 Views 控制器 Controller 得缩写 是一种软件设计规范 是将业务逻辑 数据 显示分离得方法组织代码 MVC主要作用是降低了视图与业务逻辑
  • npm run dev,npm run serve 运行到一半卡死

    Vue npm run dev npm run serve 运行到一半卡死 有两个原因会造成这个结果 modules中缺少依赖 使用npm install 命令重新加载依赖 Vue规定每个template中必须有一个根div 如果有两个di
  • 【雕爷学编程】Arduino 手册之比较运算符的成员运算符和非成员运算符

    什么是Arduino Arduino 是一款开源的电子原型平台 它可以让你用简单的硬件和软件来创建各种创意的项目 无论你是初学者还是专家 Arduino 都能为你提供无限的可能性 你可以用 Arduino 来控制传感器 灯光 马达 机器人
  • Qt学习11:Dialog对话框操作总结

    文章首发于我的个人博客 欢迎大佬们来逛逛 完整Qt学习项目地址 源码地址 文章目录 QDialog QDialogButtonBox QMessageBox QFileDialog QFontDialog QColorDialog QInp