Qt的对话框与窗口--标准的对话框

Qt中调用选择文件对话框(单选和多选) 目录 一、选择单文件对话框 二、选择多文件对话框 一、选择单文件对话框 引用头文件 #include< QFileDialog> void DataFileMerge::SelectFile_Info(int i) { QString fileName = QFileDialog::getOpenFileName(this,QStringLiteral("文件对话框!"),"F:",QStringLiteral("图片文件(*png *jpg);;""本本文件(*txt)".. 阅读详情

标准的对话框

								表1 Qt预定义标准对话框
对话框常用静态函数名称函数功能
QFileDialog文件对话框QString getOpenFileName()选择打开一个文件
QStringList getOpenFileNames()选择打开多个文件
QString getSaveFileName()选择保存一个文件
QString getExistingDirectory()选择一个已有的目录
QUrl getOpenFileUrl()选择打开一个文件,可选择远程网络文件
QcolorDialog颜色对话框QColor getColor()选择颜色
QFontDialog字体对话框QFont getFont()选择字体
QInputDialog输入对话框QString getText()输入单行文字
int getInt()输入整数
double getDouble()
QString getItem()从一个下拉列表框中选择输入
QString getMultiLineText()输入多行字符串
QMessageBox消息框StandardButton information()信息提示对话框
StandardButton question()询问并获取是否确认的对话框
StandardButton warning()警告信息提示对话框
StandardButton critical()错误信息提示对话框
void about()设置自定义信息的关于对话框
void aboutQt()关于Qt的对话框

QFileDialog对话框

1.选择打开一个文件

若要打开一个文件,可调用静态函数QFileDialog::getOpenFileName(),“打开一个文件”按钮的响应代码如下:

void Dialog::on_btnOpen_clicked()
{ //选择单个文件
   QString curPath=QDir::currentPath();//获取应用程序当前目录
   QString dlgTitle="选择一个文件"; 
   QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)";
   QString aFileName=QFileDialog::getOpenFileName(this, 
                       dlgTitle, curPath, filter);
   if (!aFileName.isEmpty())
      ui->plainTextEdit->appendPlainText(aFileName);
}

QFileDialog::getOpenFileName()函数需要传递3个字符串型参数,分别如下。
对话框标题,这里设置为"选择一个文件"。
初始化目录,打开对话框时的初始目录,这里用QDir::currentPath() 获取应用程序当前目录。
文件过滤器,设置选择不同后缀的文件,可以设置多组文件,如:

QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*)";

每组文件之间用两个分号隔开,同一组内不同后缀之间用空格隔开。
QFileDialog ::getOpenFileName()函数返回的是选择文件的带路径的完整文件名,如果在对话框里取消选择,则返回字符串为空。

2.选择打开多个文件

若要选择打开多个文件,可使用静态函数QFileDialog::getOpenFileNames(),“打开多个文件”按钮的响应代码如下:

void Dialog::on_btnOpenMulti_clicked()
{ //选择多个文件
   QString curPath=QDir::currentPath();
   QString dlgTitle="选择多个文件"; 
   QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)"; 
   QStringList fileList=QFileDialog::getOpenFileNames(this,
                   dlgTitle,curPath,filter);
   for (int i=0; i<fileList.count();i++)
      ui->plainTextEdit->appendPlainText(fileList.at(i));
}

getOpenFileNames()函数的传递参数与getOpenFileName()一样,只是返回值是一个字符串列表,列表的每一行是选择的一个文件。

3.选择已有目录

选择已有目录可调用静态函数QFileDialog::getExistingDirectory(),同样,若需要传递对话框标题和初始路径,还应传递一个选项,一般用QFileDialog::ShowDirsOnly,表示对话框中只显示目录。

void Dialog::on_btnSelDir_clicked()
{ //选择文件夹
   QString curPath=QCoreApplication::applicationDirPath();
   QString dlgTitle="选择一个目录"; 
   QString selectedDir=QFileDialog::getExistingDirectory(this,
                dlgTitle,curPath, QFileDialog::ShowDirsOnly);
   if (!selectedDir.isEmpty())
      ui->plainTextEdit->appendPlainText(selectedDir);
}

静态函数QCoreApplication::applicationDirPath()返回应用程序可执行文件所在的目录,getExistingDirectory()函数的返回值是选择的目录名称字符串。

4.选择保存文件名

选择一个保存文件,使用静态函数QFileDialog::getSaveFileName(),传递的参数与getOpenFile Name()函数相同。只是在调用getSaveFileName()函数时,若选择的是一个已经存在的文件,会提示是否覆盖原有的文件。如果提示覆盖,会返回为选择的文件,但是并不会对文件进行实质操作,对文件的删除操作需要在选择文件之后自己编码实现。如下面的代码,即使选择覆盖文件,由于代码里没有实质地覆盖原来的文件,也不会对选择的文件造成任何影响。

void Dialog::on_btnSave_clicked()
{//保存文件
   QString curPath=QCoreApplication::applicationDirPath();
   QString dlgTitle="保存文件";
   QString filter="h文件(*.h);;C++文件(.cpp);;所有文件(*.*)";
   QString aFileName=QFileDialog::getSaveFileName(this,
                  dlgTitle,curPath,filter);
   if (!aFileName.isEmpty())
      ui->plainTextEdit->appendPlainText(aFileName);
}

选择文件,保存文件并没有对文件进行实际的操作,只是返回了一个文件的路径。实际的操作,还需要对文件进行,读写,删除,增加等等的文件操作。

QColorDialog对话框

QColorDialog是选择颜色对话框,选择颜色使用静态函数QColorDialog::getColor()。下面是“选择颜色”按钮的代码,它为文本框的字体选择颜色。

void Dialog::on_btnColor_clicked()
{//选择颜色
   QPalette pal=ui->plainTextEdit->palette(); //获取现有 palette
   QColor  iniColor=pal.color(QPalette::Text); //现有的文字颜色
   QColor color=QColorDialog::getColor(iniColor,this,"选择颜色");
   if (color.isValid())
   {
      pal.setColor(QPalette::Text,color); 
      ui->plainTextEdit->setPalette(pal); 
   }
}

getColor()函数需要传递一个初始的颜色,这里是将palette提取的文本颜色作为初始颜色。getColor()函数返回一个颜色变量,若在颜色对话框里取消选择,则返回的颜色值无效,通过QColor::isValid()函数来判断返回是否有效。

QFontDialog对话框

QFontDialog是选择字体对话框,选择字体使用静态函数QFontDialog::getFont()。下面是“选择字体”按钮的代码,它为文本框选择字体,字体设置的内容包括字体名称、大小、粗体、斜体等。

void Dialog::on_btnFont_clicked()
{//选择字体
   QFont iniFont=ui->plainTextEdit->font();
   bool   ok=false;
   QFont font=QFontDialog::getFont(&ok,iniFont); 
   if (ok)
      ui->plainTextEdit->setFont(font);
}

getFont()返回一个字体变量,但是QFont没有类似于isValid()的函数来判断有效性,所以在调用getFont()函数时以引用方式传递一个逻辑变量ok,调用后通过判断ok是否为true来判断字体选择是否有效。

QInputDialog标准输入对话框

QInputDialog有单行字符串输入、整数输入、浮点数输入、列表框选择输入和多行文本等多种输入方式。

1.输入文字

QInputDialog::getText()函数显示一个对话框用于输入字符串,传递的参数包括对话框标题、提示标签文字、缺省输入、编辑框响应模式等。

其中编辑框响应模式是枚举类型QLineEdit::EchoMode,它控制编辑框上文字的显示方式,正常情况下选择QLineEdit::Normal;如果是输入密码,选择QLineEdit::Password。代码如下:

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

2.输入整数

使用QInputDialog::getInt()函数输入一个整数,下面的代码为文本选择字体大小。

void Dialog::on_btnInputInt_clicked()
{//输入整数
   QString dlgTitle="输入整数对话框";
   QString txtLabel="设置字体大小";
   int defaultValue=ui->plainTextEdit->font().pointSize();
   int minValue=6, maxValue=50,stepValue=1;
   bool ok=false;
   int inputValue = QInputDialog::getInt(this, dlgTitle,txtLabel,
                      defaultValue, minValue,maxValue,stepValue,&ok);
   if (ok) 
   { 
      QFont   font=ui->plainTextEdit->font();
      font.setPointSize(inputValue);
      ui->plainTextEdit->setFont(font);
   }
}

输入整数对话框使用一个SpinBox组件输入整数,getInt()需要传递的参数包括数值大小范围、步长、初始值,确认选择输入后,将输入的整数值作为文本框字体的大小。

3.输入浮点数

使用QInputDialog:: getDouble ()函数输入一个浮点数,输入对话框使用一个QDoubleSpinBox作为输入组件,getDouble()的输入参数需要输入范围、初始值、小数点位数等。代码如下:

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

4.下拉列表选择输入

使用QInputDialog::getItem()可以从一个ComboBox组件的下拉列表中选择输入。代码如下:

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

getItem()函数需要一个QStringList变量为其ComboBox组件做条目初始化,curIndex指明初始选择项,editable表示对话框里的ComboBox是否可编辑,若不能编辑,则只能在下拉列表中选择。

QMessageBox消息对话框

1.简单信息提示

消息对话框QMessageBox用于显示提示、警告、错误等信息,或进行确认选择,由几个静态函数实现这些功能。其中warning()、information()、critical()和about()这几个函数的输入参数和使用方法相同,只是信息提示的图标有区别。例如,warning()的函数原型是:

StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const 
QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)

其中,parent是对话框的父窗口,指定父窗口之后,打开对话框时,对话框将自动显示在父窗口的上方中间位置;title是对话框标题字符串;text是对话框需要显示的信息字符串;buttons是对话框提供的按钮,缺省只有一个OK按钮;defaultButton是缺省选择的按钮,缺省表示没有选择。

warning()函数的返回结果是StandardButton类型。对话框上显示的按钮和缺省选中按钮也是StandardButton类型。

StandardButton是各种按钮的定义,如OK、Yes、No、Cancel等,其枚举取值是QMessageBox::Ok、QMessageBox::Cancel、QMessageBox::Close等,详见Qt帮助文档中的StandardButton类型的说明。

对于warning()、information()、critical()和about()这几种对话框,它们一般只有一个OK按钮,且无须关心对话框的返回值。所以,使用缺省的按钮设置即可。

void Dialog::on_btnMsgInformation_clicked()
{//information
   QString dlgTitle="information消息框";
   QString strInfo="文件已经打开,字体大小已设置";
   QMessageBox::information(this, dlgTitle, strInfo,
                        QMessageBox::Ok,QMessageBox::NoButton);
}
void Dialog::on_btnMsgWarning_clicked()
{// warning
   QString dlgTitle="warning 消息框";
   QString strInfo="文件内容已经被修改";
   QMessageBox::warning(this, dlgTitle, strInfo);
}
void Dialog::on_btnMsgCritical_clicked()
{// critical
   QString dlgTitle="critical消息框";
   QString strInfo="有不明程序访问网络";
   QMessageBox::critical(this, dlgTitle, strInfo);
}
void Dialog::on_btnMsgAbout_clicked()
{// about
   QString dlgTitle="about消息框";
   QString strInfo="我开发的数据查看软件 V1.0 \n 保留所有版权";
   QMessageBox::about(this, dlgTitle, strInfo);
}

2.确认选择对话框

QMessageBox::question()函数用于打开一个选择对话框,提示信息,并提供Yes、No、OK、Cancel等按钮,用户单击某个按钮返回选择,如常见的文件保存确认对话框。

静态函数QMessageBox::question()的原型如下:

StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = StandardButtons( Yes | No ), StandardButton defaultButton = NoButton)

question()对话框的关键是在其中可以选择显示多个按钮,例如同时显示Yes、No、OK或Cancel。其返回结果也是一个StandardButton 类型变量,表示哪个按钮被单击了。下面是产生如图6-4所示对话框的代码,并根据对话框选择结果进行了判断和显示。

void Dialog::on_btnMsgQuestion_clicked()
{
   QString dlgTitle="Question消息框";
   QString strInfo="文件已被修改,是否保存修改?";
   QMessageBox::StandardButton  defaultBtn=QMessageBox::NoButton; 
   QMessageBox::StandardButton  result;//返回选择的按钮
   result=QMessageBox::question(this, dlgTitle, strInfo,
                  QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,
                  defaultBtn);
   if (result==QMessageBox::Yes)
      ui->plainTextEdit->appendPlainText("Question消息框: Yes 被选择");
   else if(result==QMessageBox::No)
      ui->plainTextEdit->appendPlainText("Question消息框: No 被选择");
   else if(result==QMessageBox::Cancel)
      ui->plainTextEdit->appendPlainText("Question消息框: Cancel 被选择");
   else
      ui->plainTextEdit->appendPlainText("Question消息框: 无选择");
}
QT对话框与多窗口程序 QT学习笔记 阅读详情

相关推荐

关于QT的文件选择对话框类QFileDialog的使用

QT的QFileDialog类是一个非常实用的文件选择对话框控件,可以方便地实现文件的打开、保存等操作。函数用于打开文件选择对话框,第一个参数是指父窗口指针,第二个参数是对话框的标题,第三个参数是默认打开的路径,第四个参数是文件类型筛选器,只有符合筛选器条件的文件才会被显示出来。函数用于打开保存文件的对话框。根据返回的文件路径,我们可以创建一个QFile对象,并打开这个文件进行写入操作。需要注意的是,当需要向文件中写入内容时,我们需要使用QTextStream类,它提供了一系列方便的文本操作函数,比如。

HackVibe的博客 584

QT—5种标准对话框使用详解

对话框是 GUI 程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同。 Qt常用的内置对话框有QFileDialog、QColorDialog、QFontDialog、QInputDialog和QMessageBox。

qq_54169998的博客 9766

Qt 文件选择对话框

Qt QFileDialog 文件选择对话框 多选

学习QT之基本对话框

customMsgBox.setWindowTitle(tr("用户自定义消息框"));customMsgBox.setText(tr("这是一个用户自定义消息框"));运行结果:进群领取qt开发学习资料以及技术交流在下方↓↓↓↓↓↓↓↓t=N4P3Qt学习基地https://ke.qq.com/course/444655?

hw5230的博客 3745

Windows 64 位系统下安装配置 DOSBox 及 debug.exe

该篇博客同样作为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。 很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言的时候,会发现进入不了,出现类似以下的错误提示。 这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 d

加号减减号的博客 5万+

Zynq工程IP核封装:XCI引用与约束继承实战指南

IP核封装是FPGA系统设计中实现模块复用、团队协作与技术资产沉淀的关键环节。其本质是将功能逻辑、时序约束、接口协议和硬件配置统一抽象为可配置、可验证、可演进的标准化组件。核心原理在于通过XCI文件保留IP核的参数化定义能力,依托Vivado IP Packager实现约束继承、端口自动映射与时钟域解耦,从而保障跨项目集成的时序可信性与约束完备性。该技术广泛应用于Zynq SoC视频处理、高速接口(如HDMI/TMDS)、多时钟域控制系统等场景,尤其在需要长期维护与版本迭代的工业级嵌入式开发中具有不可替代的

weixin_42593701的博客 123

【Qt】窗口部件 标准对话框

1.QWidget1.1 窗口与子部件2.QDialog2.1 模态和非模态对话框 2.2 初始信号和槽并实现多窗口切换 1) 定义信号和槽 2) 自动定义对话框 3) 标准对话框 a.颜色对话框 b.文件对话框 c.字体对话框 d.输入对话框 e.消息对话框 f.进度对话框 g.错误消息对话框 h.向导对话框 *完整代码

m0_61628700的博客 1152

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+

利用Qt的标准文件对话框及OpenCV创建窗口并显示图片

在按键的信号槽函数中实现 //开图片利用Qt的标准文件对话框,利用OpenCV创建窗口并显示 void MainWindow::on_p_clicked() { cv::Mat image; ui->p->close(); QString fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),

Evolution 1564

UE5实现物体高亮描边效果(含UE相关源码浅析)

UE5实现物体高亮描边效果

专注GIS开发 7334

【C语言】字符常量详解

字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。

LuckiBit 5017

Qt主窗口框架详解:从QMainWindow到标准对话框的完整指南

本文介绍了Qt框架中主窗口(QMainWindow)及其组件的使用方法。主要内容包括:1. 主窗口布局结构,包含菜单栏、工具栏、状态栏、浮动窗口和中心部件;2. 菜单栏(QMenuBar)创建方式及注意事项,包括菜单项(QAction)的添加和信号连接;3. 工具栏(QToolBar)的创建、停靠位置设置和浮动属性配置;4. 状态栏(QStatusBar)的消息显示方法;5. 浮动窗口(QDockWidget)的创建和停靠位置设置;6. 常用对话框的使用

2301_80394126的博客 712

玩转Docker小游戏项目系列:Docker部署魔塔网页经典小游戏

玩转Docker小游戏项目系列:Docker部署魔塔网页经典小游戏

jks212454的博客 1063

【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog

QColorDialog是一个对话框类,用于选择颜色。它提供了一个用户友好的界面,可以让用户从预定义的颜色列表中选择颜色,或者自定义颜色。该类是Qt框架中的一部分,可以用于创建图形化界面应用程序。使用QColorDialog,可以方便地为应用程序添加颜色选择功能。用户可以通过点击颜色列表或使用颜色选择器直接选择颜色,还可以通过调节红、绿、蓝色调来选择颜色。

小黄鸭的博客 2160

【AI 智能体】Windows 环境 Hermes Agent(爱马仕)安装详细过程

Windows 环境 Hermes Agent(爱马仕)安装详细过程

congge_study的博客 1829

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4264

【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog

在Qt中,QInputDialog是一个对话框类,用于获取用户输入的数据。它提供了多种输入类型的方法,包括文本、整数、浮点数和选项。使用QInputDialog非常简单。只需包含QInputDialog头文件,然后使用适当的方法调用它即可。总的来说,QInputDialog是一个很方便的类,可以用于创建各种类型的输入对话框,从而简化用户输入的过程。它具有简单易用的接口,可以很容易地集成到Qt应用程序中。

小黄鸭的博客 1916

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Qt:菜单栏、工具栏、状态栏、核心控件、浮动窗口、模态对话框、非模态对话框、标准对话框、文件对话框

#include "mainwindow.h" #include <QMenuBar>//菜单栏 #include <QMenu>//菜单 #include <QAction> #include <QDebug> #include <QToolBar>//工具栏 #include <QPushButton>//按钮 #include <QStatusBar>//状态栏 #include <QLabel>//标签

weixin_44190648的博客 1439

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox

在Qt中,可以使用QMessageBox类来创建和显示消息对话框。QMessageBox提供了各种类型的消息对话框,包括信息消息、警告消息、错误消息和询问消息等。

小黄鸭的博客 2688

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog

QFontDialog是Qt框架中的一个对话框类,用于选择字体。QFontDialog提供了一个可视化的界面,允许用户选择所需的字体以及相关的属性,如字体样式、大小、粗细等。用户可以通过对话框中的选项进行选择,并实时预览所选字体的效果。

小黄鸭的博客 1663

【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog

QFileDialog是一个用于选择文件或文件夹的对话框类,它是Qt框架提供的。该类提供了一种方便的方式来打开、保存和选择文件或文件夹,并提供了一些额外的功能,如过滤文件类型、选择多个文件等。

小黄鸭的博客 2157

QT5之windowswidget_菜单栏+工具栏_核心控件_浮动窗口_模态对话框_标准对话框/文本对话框

include //菜单栏的头文件。在.pro文件添加配置c++11。因为之后用到lambda;

qq_36658033的博客 834

Qt窗口部件——对话框QDialog

1. 模态和非模态对话框 2. 多窗口切换 2.1 信号和槽 2.2 练习信号和槽例程 2.3 自定义对话框 3. 标准对话框 3.1 颜色对话框 3.2 文件对话框 3.3 字体对话框 3.4 输入对话框 3.5 消息对话框 3.6 进度对话框 3.7 错误消息对话框 3.8 向导对话框

MechMaster 1万+

QT中菜单栏,工具栏,核心控件,浮动窗口,模态和非模态对话框,标准对话框和文件对话框的使用

mainwindow.cpp #include "mainwindow.h" #include <QMenuBar> //菜单栏 #include <QMenu> //菜单 #include <QAction> #include <QtDebug> #include <QToolBar> //工具栏 #includ...

qq_43499599的博客 420

六、Qt标准对话框、多应用窗体

QString getOpenFileName() 打开一个文件QstringList getOpenFileNames() 打开多个文件QString getSaveFileName() 选择保存一个文件QString getExistingDirectory() 选择一个已有目录QUrl getOpenFileUrl() 打开一个网络文件QWDialogSize 设置表格行列数对话框QWDialogHeaders 设置表头对话框。

liutit的博客 1085

QT——核心控件(菜单栏,工具栏,状态栏,核心控件,浮动窗口,模态与非模态对话框,标准对话框,文件对话框)

菜单栏 ①include<QMenuBar>和<QMenu>:菜单栏和菜单 初始化新建菜单栏对象:QMenuBar *mBar = menuBar(); 添加菜单:QMenu *pFile = mBar->addMenu("文件");//addMenu有三个重载可供选择,菜单名字为文件 添加菜单项,添加动作:QAction *pNew = pFile->...

qq_35706707的博客 646
上一篇: Qt的容器类
下一篇: Qt的对话框与窗口--自定义的对话框
Simple_core
博客等级 码龄6年 929粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值