【Qt之QWizard】使用1

QWizard使用

      • 描述
      • 方法
        • 枚举:enum QWizard::WizardButton
        • 枚举:enum QWizard::WizardOption
        • 枚举:enum QWizard::WizardStyle
        • 枚举:enum QWizard::WizardPixmap
        • 常用成员方法
        • 槽函数
        • 信号
      • 示例
        • 设置标题
        • 添加page页
        • 设置按钮文本
        • 设置自定义按钮文本
        • 设置page页
        • 设置帮助 按钮
        • 设置像素图
        • registerField(const QString &name, QWidget *widget, const char *property = Q_NULLPTR, const char *changedSignal = Q_NULLPTR)方法
        • QWizardPage::setCommitPage(bool commitPage)方法
        • 创建QWizardPage
        • 调用
      • 完整示例
      • 解释

描述

QWizard类为向导提供了一个框架。

向导(在macOS上也称为助手)是一种特殊类型的输入对话框,由一系列页面组成。向导的目的是一步一步地指导用户完成流程。对于用户可能难以学习的复杂或不常见的任务,向导非常有用。

QWizard继承QDialog并表示向导。每个页面都是一个QWizardPage (QWidget的子类)。要创建您自己的向导,您可以直接使用这些类,或者您可以创建它们的子类以获得更多的控制。

方法

枚举:enum QWizard::WizardButton

此enum指定向导中的按钮。
关联函数:
可使用setButton(),setButtonText(),setButtonLayout()等函数进行设置。

常量描述解释
QWizard::BackButton0The Back button (Go Back on macOS)后退按钮(在macOS上返回)
QWizard::NextButton1The Next button (Continue on macOS)Next按钮(macOS上的Continue)
QWizard::CommitButton2The Commit button提交按钮
QWizard::FinishButton3The Finish button (Done on macOS)完成按钮(在macOS上完成)
QWizard::CancelButton4The Cancel button (see also NoCancelButton)取消按钮(参见NoCancelButton)
QWizard::HelpButton5The Help button (see also HaveHelpButton)帮助按钮(参见HaveHelpButton)
QWizard::CustomButton16The first user-defined button (see also HaveCustomButton1)第一个用户定义的按钮(参见HaveCustomButton1)
QWizard::CustomButton27The second user-defined button (see also HaveCustomButton2)第二个用户定义的按钮(参见HaveCustomButton2)
QWizard::CustomButton38The third user-defined button (see also HaveCustomButton3)第三个用户定义按钮(参见HaveCustomButton3)

以下值只有在使用setButtonLayout()方法的时候有效:

常量描述解释
QWizard::Stretch9A horizontal stretch in the button layout水平伸缩在按钮布局中
枚举:enum QWizard::WizardOption

此enum指定影响向导外观的各种选项。
关联函数:
setOptions(), setOption(), 和 testOption().

常量描述解释
QWizard::IndependentPages0x00000001The pages are independent of each other (i.e., they don’t derive values from each other).各页面相互独立(即,它们不从彼此中派生值)。
QWizard::IgnoreSubTitles0x00000002Don’t show any subtitles, even if they are set.即使已设置,也不显示任何副标题。
QWizard::ExtendedWatermarkPixmap0x00000004Extend any WatermarkPixmap all the way down to the window’s edge.将任何水印位图一直扩展到窗口边缘。
QWizard::NoDefaultButton0x00000008Don’t make the Next or Finish button the dialog’s default button.不要将“下一步”或“完成”按钮设置为对话框的默认按钮。
QWizard::NoBackButtonOnStartPage0x00000010Don’t show the Back button on the start page.在起始页面上不显示“返回”按钮。
QWizard::NoBackButtonOnLastPage0x00000020Don’t show the Back button on the last page.在最后一页上不显示“返回”按钮。
QWizard::DisabledBackButtonOnLastPage0x00000040Disable the Back button on the last page.禁用最后一页上的“返回”按钮。
QWizard::HaveNextButtonOnLastPage0x00000080Show the (disabled) Next button on the last page.在最后一页上显示(禁用)的“下一步”按钮。
QWizard::HaveFinishButtonOnEarlyPages0x00000100Show the (disabled) Finish button on non-final pages.在非最终页面上显示(禁用)的“完成”按钮。
QWizard::NoCancelButton0x00000200Don’t show the Cancel button.不显示“取消”按钮。
QWizard::CancelButtonOnLeft0x00000400Put the Cancel button on the left of Back (rather than on the right of Finish or Next).将“取消”按钮放在“返回”按钮的左侧(而不是“完成”或“下一步”按钮的右侧)。
QWizard::HaveHelpButton0x00000800Show the Help button.显示“帮助”按钮。
QWizard::HelpButtonOnRight0x00001000Put the Help button on the far right of the button layout (rather than on the far left).将“帮助”按钮放在按钮布局的最右边(而不是最左边)。
QWizard::HaveCustomButton10x00002000Show the first user-defined button (CustomButton1).显示第一个用户定义的按钮(CustomButton1)。
QWizard::HaveCustomButton20x00004000Show the second user-defined button (CustomButton2).显示第二个用户定义的按钮(CustomButton2)。
QWizard::HaveCustomButton30x00008000Show the third user-defined button (CustomButton3).显示第三个用户定义的按钮(CustomButton3)。
QWizard::NoCancelButtonOnLastPage0x00010000Don’t show the Cancel button on the last page.在最后一页上不显示“取消”按钮。

WizardOptions类型是qflag的类型定义。它存储了WizardOption值OR组合。

枚举:enum QWizard::WizardStyle

enum指定QWizard支持的不同外观。
关联函数:
可通过setWizardStyle()进行外观设置,如果不设置,使用setPixmap()方法设置位图无效。

常量描述解释
QWizard::ClassicStyle0Classic Windows look经典的 Windows 外观
QWizard::ModernStyle1Modern Windows look现代的 Windows 外观
QWizard::MacStyle2macOS lookmacOS 外观
QWizard::AeroStyle3Windows Aero lookWindows Aero 外观
QWizard::NStyles4默认

在这里插入图片描述

枚举:enum QWizard::WizardPixmap

此enum指定可以与页面关联的像素图。
关联函数:
通过 setPixmap(), QWizardPage::setPixmap()等方法设置像素图。

常量描述解释
QWizard::WatermarkPixmap0The tall pixmap on the left side of a ClassicStyle or ModernStyle pageClassicStyle或ModernStyle页面左侧的高度较高的像素图
QWizard::LogoPixmap1The small pixmap on the right side of a ClassicStyle or ModernStyle page headerClassicStyle或ModernStyle页面标题栏右侧的小像素
QWizard::BannerPixmap2The pixmap that occupies the background of a ModernStyle page header占用ModernStyle页面标题栏背景的像素图
QWizard::BackgroundPixmap3The pixmap that occupies the background of a MacStyle wizard占用MacStyle向导背景的像素图
QWizard::NPixmaps4默认
常用成员方法
  • int addPage(QWizardPage *page):将给定的页面添加到向导中,返回新页面的ID。
  • QAbstractButton *button(WizardButton which) const:返回指定按钮类型的按钮(如下一步、上一步、完成等)。
  • QString buttonText(WizardButton which) const:返回指定按钮类型的文本。
  • int currentId() const:返回当前页面的ID。
  • QWizardPage *currentPage() const:返回当前页面。
  • QVariant field(const QString &name) const:返回具有给定名称的字段的值。
  • bool hasVisitedPage(int id) const:检查页面ID是否已经被访问过。
  • virtual int nextId() const:返回下一个要显示的页面的ID。
  • WizardOptions options() const:返回当前设置的选项。
  • QWizardPage *page(int id) const:返回指定ID的页面。
  • QList<int> pageIds() const:返回添加到向导中的所有页面的ID的列表。
  • QPixmap pixmap(WizardPixmap which) const:返回指定像素图类型的像素图(如向导标志、向导背景等)。
  • void removePage(int id):从向导中删除指定ID的页面。
  • void setButton(WizardButton which, QAbstractButton *button):设置指定按钮类型的按钮。
  • void setButtonLayout(const QList<WizardButton> &layout):设置按钮布局。
  • void setButtonText(WizardButton which, const QString &text):设置指定按钮类型的文本。
  • void setDefaultProperty(const char *className, const char *property, const char *changedSignal):设置默认属性。
  • void setField(const QString &name, const QVariant &value):设置字段的值。
  • void setOption(WizardOption option, bool on = true):设置指定选项的开启或关闭状态。
  • void setOptions(WizardOptions options):设置选项。
  • void setPage(int id, QWizardPage *page):设置指定ID的页面。
  • void setPixmap(WizardPixmap which, const QPixmap &pixmap):设置指定像素图类型的像素图。
  • void setSideWidget(QWidget *widget):设置侧边栏小部件。
  • void setStartId(int id):设置向导的起始ID。
  • void setSubTitleFormat(Qt::TextFormat format):设置副标题的格式。
  • void setTitleFormat(Qt::TextFormat format):设置标题的格式。
  • void setWizardStyle(WizardStyle style):设置向导的风格。
  • QWidget *sideWidget() const:返回侧边栏小部件。
  • int startId() const:返回向导的起始ID。
  • Qt::TextFormat subTitleFormat() const:返回副标题的格式。
  • bool testOption(WizardOption option) const:检查指定选项是否已启用。
  • Qt::TextFormat titleFormat() const:返回标题的格式。
  • virtual bool validateCurrentPage():验证当前页面是否符合要求。
  • QList<int> visitedPages() const:返回已访问的页面的ID列表。
  • WizardStyle wizardStyle() const:返回向导的风格。
槽函数
  • void back():显示前一个页面。
  • void next():显示下一个页面。
  • void restart():从头开始显示向导的第一个页面。
信号
  • void currentIdChanged(int id):当前页面的ID已更改。
  • void customButtonClicked(int which):单击自定义按钮时发射。
  • void helpRequested():当用户请求帮助时发射。
  • void pageAdded(int id):向导中添加了新页面。
  • void pageRemoved(int id):从向导中删除了页面。

示例

c
在这里插入图片描述

设置标题
setWindowTitle(QStringLiteral("wizard show"));
添加page页
    QWizard wizard;
    wizard.addPage(createIntroPage());
    wizard.addPage(createRegistrationPage());
    wizard.addPage(createConclusionPage());
设置按钮文本
    setButtonText(QWizard::NextButton, "下一步");
    setButtonText(QWizard::CancelButton, "取消");
    setButtonText(QWizard::BackButton, "返回");

这个是只有设置了setWizardStyle(QWizard::ModernStyle);样式后,才会显示回退按钮,只有添加了page页之后,才会显示下一步按钮,如果啥都没添加,界面只有 cancel,如果是最后一页,显示是finish,而不是"下一步"。
在这里插入图片描述

设置自定义按钮文本
    setButtonText(QWizard::CustomButton1, "自定义1");

    setOptions(options() | QWizard::HaveCustomButton1);

设置自定义按钮文本后,不会显示,只有设置setOptions()后,才显示,这个自定义按钮是每页都显示,可以根据是否需要,自行控制显隐。
在这里插入图片描述

设置page页
    setPage(Page_Intro, new IntroPage);
    setPage(Page_Evaluate, new EvaluatePage);
    setPage(Page_Register, new RegisterPage);
    setPage(Page_Details, new DetailsPage);
    setPage(Page_Conclusion, new ConclusionPage);

第一个参数为自定义id,可以重写QWizardnextId()方法,自定义上一步下一步,具体跳到某页。

设置帮助 按钮
setOption(HaveHelpButton, true);
设置像素图
    setPixmap(QWizard::LogoPixmap, QPixmap(":/images/logo.png"));

在这里插入图片描述

registerField(const QString &name, QWidget *widget, const char *property = Q_NULLPTR, const char *changedSignal = Q_NULLPTR)方法
    registerField("details.company*", companyLineEdit);
    registerField("details.email*", emailLineEdit);
    registerField("details.postal*", postalLineEdit);

创建一个名为name的字段,该字段与给定小部件的给定属性关联。从那时起,可以使用field()和setField()访问该属性。
字段对于整个向导来说是全局的,并且使任何单个页面都可以轻松访问由另一个页面存储的信息,而不必将所有逻辑放在QWizard中,也不必让页面显式地了解彼此。
“name”以“*”结尾时为必填字段。当页面有强制字段时,Next和/或Finish按钮只有在所有强制字段都填满时才启用。这需要指定一个changedSignal,以告诉QWizard重新检查由必填字段存储的值。
调用,不加后面的*

field("details.email").toString();
QWizardPage::setCommitPage(bool commitPage)方法

如果commitPage为true,则将该页设置为提交页;否则,将其设置为普通页面。
提交页是表示不能通过单击“返回”或“取消”来撤消的操作的页面。
提交按钮取代提交页面上的Next按钮。单击此按钮只调用QWizard::next(),就像单击next一样。
直接从提交页面进入的页面会禁用后退按钮。

创建QWizardPage
  QWizardPage *createIntroPage()
  {
      QWizardPage *page = new QWizardPage;
      page->setTitle("Introduction");

      QLabel *label = new QLabel("This wizard will help you register your copy "
                                 "of Super Product Two.");
      label->setWordWrap(true);

      QVBoxLayout *layout = new QVBoxLayout;
      layout->addWidget(label);
      page->setLayout(layout);

      return page;
  }

在这里插入图片描述

调用
  int main(int argc, char *argv[])
  {
      QApplication app(argc, argv);
	// 以下是翻译,根据不同style,可以显示不同的最下方按钮为中文
  #ifndef QT_NO_TRANSLATION
      QString translatorFileName = QLatin1String("qt_");
      translatorFileName += QLocale::system().name();
      QTranslator *translator = new QTranslator(&app);
      if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
          app.installTranslator(translator);
  #endif

      QWizard wizard;
      wizard.addPage(createIntroPage());
      wizard.addPage(createRegistrationPage());
      wizard.addPage(createConclusionPage());

      wizard.setWindowTitle("Trivial Wizard");
      wizard.show();

      return app.exec();
  }

完整示例

#include <QtWidgets>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>

// 创建Intro页
QWizardPage *createIntroPage()
{
    QWizardPage *page = new QWizardPage;
    page->setTitle("Introduction");

    QLabel *label = new QLabel("This wizard will help you register your copy "
                               "of Super Product Two.");
    label->setWordWrap(true);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(label);
    page->setLayout(layout);

    return page;
}
// 创建Registration页
QWizardPage *createRegistrationPage()
{
    QWizardPage *page = new QWizardPage;
    page->setTitle("Registration");
    page->setSubTitle("Please fill both fields.");

    QLabel *nameLabel = new QLabel("Name:");
    QLineEdit *nameLineEdit = new QLineEdit;

    QLabel *emailLabel = new QLabel("Email address:");
    QLineEdit *emailLineEdit = new QLineEdit;

    QGridLayout *layout = new QGridLayout;
    layout->addWidget(nameLabel, 0, 0);
    layout->addWidget(nameLineEdit, 0, 1);
    layout->addWidget(emailLabel, 1, 0);
    layout->addWidget(emailLineEdit, 1, 1);
    page->setLayout(layout);

    return page;
}
// 创建Conclusion页
QWizardPage *createConclusionPage()
{

    QWizardPage *page = new QWizardPage;
    page->setTitle("Conclusion");

    QLabel *label = new QLabel("You are now successfully registered. Have a "
                               "nice day!");
    label->setWordWrap(true);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(label);
    page->setLayout(layout);

    return page;
}
// 调用
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 翻译
#ifndef QT_NO_TRANSLATION
    QString translatorFileName = QLatin1String("qt_");
    translatorFileName += QLocale::system().name();
    QTranslator *translator = new QTranslator(&app);
    if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
        app.installTranslator(translator);
#endif

    QWizard wizard;
    wizard.addPage(createIntroPage());
    wizard.addPage(createRegistrationPage());
    wizard.addPage(createConclusionPage());

    wizard.setWindowTitle("Trivial Wizard");
    wizard.show();

    return app.exec();
}

解释

代码定义了一个简单的 Qt 向导,包括三个页面:Intro(介绍)、Registration(注册)和Conclusion(结论),并提供了一些翻译支持。

createIntroPage() 函数中,创建了一个 QWizardPage 对象,设置了页面的标题和一个 QLabel,用于显示介绍文字。

createRegistrationPage() 函数中,同样创建了一个 QWizardPage 对象,并设置了页面的标题和子标题。然后添加了两个 QLineEdit 和两个 QLabel,用于输入和显示用户的姓名和电子邮件地址。

createConclusionPage() 函数中,也创建了一个 QWizardPage 对象,并设置了页面的标题和一个 QLabel,用于显示注册成功的消息。

main() 函数中,首先创建了一个 QApplication 对象,用于运行整个 Qt 应用程序。然后检查是否启用了翻译功能,如果是,则加载相应的翻译文件,并将其安装到应用程序中。

接下来创建了一个 QWizard 对象,并添加了三个页面。设置了向导的标题,并显示出来。最后,调用 app.exec() 运行应用程序,进入 Qt 的事件循环,直到应用程序关闭或者通过主动退出来结束。

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

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

相关文章

IntelliJ IDEA cmd和idea Terminal查看java版本不一致

参考&#xff1a;IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决方案 1、idea清缓存重启 没用 2、删除缓存文件 没试 3、修改环境变量的顺序 没试 4、重启电脑 麻烦&#xff0c;没试 5、项目配置jdk7 没试 按照这个url配置了一个遍 https://blog.csdn…

【电路笔记】-诺顿定理(Norton‘s Theorem)

诺顿定理&#xff08;Norton’s Theorem&#xff09; 文章目录 诺顿定理&#xff08;Nortons Theorem&#xff09;1、概述与定义2、诺顿模型确定3、一些线性电路的诺顿模型3.1 单电压源3.2 单电流源3.3 多电流/电压源 5、总结 本文是我们上一篇有关戴维南定理的文章的延续。 在…

Netty+SpringBoot 打造一个 TCP 长连接通讯方案

项目背景 最近公司某物联网项目需要使用socket长连接进行消息通讯&#xff0c;捣鼓了一版代码上线&#xff0c;结果BUG不断&#xff0c;本猿寝食难安&#xff0c;于是求助度娘&#xff0c;数日未眠项目终于平稳运行了&#xff0c;本着开源共享的精神&#xff0c;本猿把项目代码…

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6)

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图&#xff0c;Kotlin&#xff08;6&#xff09; Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09;-CSDN博客文章浏览阅读1.3k次。&#xfeff;&#xfeff;Android Dyna…

Mybatis-Plus最新教程

目录 原理&#xff1a;MybatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库信息。 ​编辑1.添加依赖 2.常用注解 3.常见配置&#xff1a; 4.条件构造器 5.QueryWrapper 6.UpdateWrapper 7.LambdaQueryWrapper:避免硬编码 8.自定义SQL 9.Iservic…

ESP32网络开发实例-将DS18B20传感器读数发送到InfluxDB

将DS18B20传感器读数发送到InfluxDB 文章目录 将DS18B20传感器读数发送到InfluxDB1、InfluxDB、DS18B20介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将介绍如何将 DS18B20传感器读数发送到 InfluxDB 时间序列数据库。 使用 InfluxDB 数据库的一大特点是可以在确定的时…

问界「力压」比亚迪,到底什么是RAEB?

作者 | Amy 编辑 | 德新 本周&#xff0c;一辆AITO问界M5智驾版「骑」上比亚迪海豚的视频引发热议。从视频推测&#xff0c;应该是M5在倒车过程中&#xff0c;猛地加速&#xff0c;一下冲到海豚车顶了。 这样富有戏剧性的视频&#xff0c;很快引爆了各大车友群。 不过在吃瓜…

AI歌姬,C位出道,基于PaddleHub/Diffsinger实现音频歌声合成操作(Python3.10)

懂乐理的音乐专业人士可以通过写乐谱并通过乐器演奏来展示他们的音乐创意和构思&#xff0c;但不识谱的素人如果也想跨界玩儿音乐&#xff0c;那么门槛儿就有点高了。但随着人工智能技术的快速迭代&#xff0c;现在任何一个人都可以成为“创作型歌手”&#xff0c;即自主创作并…

计算机组成原理——指令系统题库1-20

1、以下有关指令系统的说法中错误的是什么。 A、 指令系统是一台机器硬件能执行的指令全体 B、 任何程序运行前都要先转化为机器语言 C、 指令系统是计算机软件、硬件的界面 D、 指令系统和机器语言是无关的。 2、在CPU执行指令的过程中&#xff0c;指令的地址由什么给出。…

hash算法

一、Hash散列算法介绍 1.引言 每个人在这个社会上生存&#xff0c;都会有一个属于自己的标记&#xff0c;用于区分不同的个体。通常使用名字就可以了。但是一个名字也并不能完全表示一个人&#xff0c;因为重名的人很多。所以我们可以使用一个身份证号或者指纹来表示独一无二…

Spring Framework中的依赖注入:构造器注入 vs. Setter注入

前言 构造器注入和Setter注入是依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;中两种常见的方式&#xff0c;用于向一个对象注入其所依赖的其他对象或数值。这两种注入方式有各自的特点和用途。 构造器注入&#xff08;Constructor Injection&#xff…

工作记录-------MySql主从同步

MySql主从同步简述&#xff1a; MySQL主从同步&#xff0c;可以实现将数据从一台数据库服务器同步到多台数据库服务器。MySQL数据库自带主从同步功能&#xff0c;经过配置&#xff0c;可以实现基于库、表结构的多种方案的主从同步。 Redis是一种高性能的内存数据库&#xff1…

NSSCTF第12页(1)

[FSCTF 2023]细狗2.0 应该是和[HUBUCTF 2022 新生赛]ezsql搞混掉了 点击按钮出现了 发现输入什么回显什么 伪协议也不行 看源代码发现了这个玩意 输入了1;发现了其他回显 ls 发现了两个文件 发现被限制了 不知道是cat还是空格 绕过 直接找吧还是 得到flag [SCTF 2021]loginm…

iceoryx(冰羚)-Service Discovery

Service Discovery Summary and problem description IPC通道&#xff08;例如消息队列或UNIX域套接字&#xff09;上的服务发现是不可执行的&#xff0c;因为传输的数据较大&#xff0c;这可能会导致多个帧的传输。如果发现大量高频服务&#xff0c;例如在启动时&#xff0c…

jetson配置笔记

typora-root-url: /home/msj/ubuntu笔记本台式机环境配置说明/images Ubuntu18.04 配置 说明&#xff1a;我们所有文档配置都是按照ubuntu18.04&#xff0c;保证x86架构(笔记本台式机)和 ARM架构(jetson Nano只能安装18.04)的一致性 1. 更换各类源 我们所有源都更换清华源&a…

【教学类-07-08】20231114《破译电话号码-图形篇(图形固定列不重复)》(大4班 有名字 有班级 无学号、零=0)

效果展示 背景需求&#xff1a; 最近大4班做“嵌套骰子”非常频繁&#xff0c;为了避免“疲劳”&#xff0c;我找出他们班家长的手机号&#xff0c;批量做了“破译电话号码”&#xff0c;有图案版和加减法版&#xff0c;考虑到第一次做&#xff0c;还是选最简单的“点数总数&a…

C++算法:全 O(1) 的数据结构

题目 请你设计一个用于存储字符串计数的数据结构&#xff0c;并能够返回计数最小和最大的字符串。 实现 AllOne 类&#xff1a; AllOne() 初始化数据结构的对象。 inc(String key) 字符串 key 的计数增加 1 。如果数据结构中尚不存在 key &#xff0c;那么插入计数为 1 的 key…

蒙特卡洛树搜索(Monte Carlo Tree Search)揭秘

一. 什么是蒙特卡洛树搜索 蒙特卡洛树搜索(MCTS)是一种启发式搜索算法&#xff0c;一般用在棋牌游戏中&#xff0c;如围棋、西洋棋、象棋、黑白棋、德州扑克等。MCTS与人工神经网络结合&#xff0c;可发挥巨大的作用&#xff0c;典型的例子是2016年的AlphaGo&#xff0c;以4:1…

压测工具主要功能是什么?该怎样选择?

压测工具是一类用于模拟并评估系统在不同负载条件下的性能的软件应用程序。通过模拟大量用户同时访问系统&#xff0c;压测工具能够帮助开发者识别系统的瓶颈、性能瓶颈以及潜在的故障点。这种实时、模拟的方式允许开发者在正式投入使用之前发现并解决问题&#xff0c;提高系统…

MySQL8 绿色版安装

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; MySQL学习 ✨特色专栏&#xff1a; My…