版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Qt为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选 择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再 自己设计这些常用的对话框,这样可以减少程序设计工作量。在前面几章的实 例中,或多或少地用到了其中的一些对话框。Qt预定义的各标准对话框的类,及其主要静态函数的功能见表1 (由于输入参数一般较多,省略了函数的输入 参数,只列出了函数的返回值类型)。表1 Qt预定义标准对话框对话框常用静态函数名称函数功能QFileDialog文件对话框QString getOpenFileName() QStringList getOpenFileNames() QString
2、 getSaveFileName() QString getExistingDirectory() QUrl getOpenFileUrl()选择打一个文件 选择打开多个文件 选择保存一个文件 选择一个己有的目录 选择书月一个文件, 可选择远程网络文件QcolorDialog颜色对话框QColor getColor()选择颜色QFontDialog字体对话框QFont getFont()选择字体QinputDialog输入对话框QString getText() int getlnt() double getDouble() QString getltem() QString getMulti
3、LineText()输入单行文字输入 整数输入浮点数 从一个下拉列表框中 选择输入输入多行 字符串QMessageBox消息框StandardButton information。 StandardButton question。 StandardButton waming() StandardButton critical。void about() void aboutQt()信息提示对话框询 问并获取是否确认的 对话框警告信息提 示对话框错误信息 提示对话框设置自 定义信息的关于对话 框关于Qt的对话框实例中演示使用这些对话框,程序运行界面如图 2所示。下方的文本框显 示打开文件的文件名或
4、一些提示信息,某些对话框的输入结果可应用于文本框 的属性设置,如字体和颜色。后雷才话框的使用标准对话相打开一个文件而多个文件I 选择已有目录保存文件选择Bi色|ps探宇你| 标般输入对话框QlrfiutDlalog 输人字符匚直人整数二 输入浮点数条目选择输入标幽肖息相QMessageBos questlcn information mmlng critical 心 out aUutQt清除文本框内容C: /Users/ELengiE/Desktop/CinB+S txt|图2运行界面QFileDialog 对话框选择打开一个文件若要打开一个文件,可调用静态函数QFileDialog:getO
5、penFileName() ,“打开一个文件”按钮的响应代码如下:void Dialog二on_btnOpen_clicked()选择单个文件QString curPath=QDir:currentPath();/ 获取系统当前目录/获取应用程序的路径QString dlgTitle="选择一个文件"/对话框标题QString filter="文本文件(*.txt);图片文件(*.jpg*.gif*.png);所有文件(*.*)"文件过滤器QString aFileName=QFileDialog:getOpenFileName(this,dlgTitl
6、e,curPath,filter);if(!aFileName.isEmpty()ui->plainTextEdit->appendPlainText(aFileName);QFileDialog:getOpenFileName()函数需要传递3个字符串型参数,分别如下:1 .对话框标题,这里设置为"选择一个文件”。2 .初始化目录,打开对话框时的初始目录,这里用 QDinxurrentPath()获取应用 程序当前目录。3 .文件过滤器,设置选择不同后缀的文件,可以设置多组文件,如:QString f ilter="文本文件.txt); 图片文件(* .jpg
7、 *.gif *.png); 所有文件(*.*)";每组文件之间用两个分号隔开,同一组内不同后缀之间用空格隔开。 QFileDialog:getOpenFileName()函数返回的是选择文件的带路径的完整文件名,如果在对话框里取消选择,则返回字符串为空。选择打开多个文件若要选择打开多个文件,可使用静态函数 QFileDialog:getOpenFileNames() , “打开多个文件”按钮的响应代码如下:void Dialog:on_btnOpenMulti_clicked() 选择多个文祥/获取应用程序的路径QString curPath=QDir:currentPath();
8、/ 获取系统当前目录QString dlgTitle="选择多个文件"/对话框标题QString filter="文本文件(*.txt);图片文件(*.jpg *.gif *.png);所有文件(*.*)"文件过滤器QStringList fileList=QFileDialog:getOpenFileNames(this,dlgTitle,curPathfilter);for (int i=0; i<fileList.count();i+)ui->plainTextEdit->appendPlainText(fileList.at(i
9、); getOpenFileNames()函数的传递参数与 getOpenFileName()一样,只是 返回值是一个字符串列表,列表的每一行是选择的一个文件。选择已有目录选择己有目录可调用静态函数QFileDialog:getExistingDirectory() ,同样,若需要传递对话框标题和初始路径,还应传递一个选项,一般用 QFileDialog:ShowDirsOnly ,表示对话框中只显示目录。静态函数 QCoreApplication:applicationDirPath()返回应用程序可执行文件所在的目录,getExistingDirectory()函数的返回值是选择的目录名称
10、字符串。选择保存文件名选择一个保存文件,使用静态函数QFileDialog:getSaveFileName() ,传递的参数与getOpenFileName() 函数相同。只是在调用 getSaveFileName() 函数时,若选择的是一个己经存在的文件,会提示是否覆盖原有的文件。如果 提示覆盖,会返回为选择的文件,但是并不会对文件进行实质操作,对文件的 删除操作需要在选择文件之后自己编码实现。如下面的代码,即使选择覆盖文件,由于代码里没有实质地覆盖原来的文 件,也不会对选择的文件造成任何影响:void Dialog:on_btnSave_clicked()保存文件 一 一QString c
11、urPath=QCoreApplication二applicationDirPath(); 获取应用程序的路径QString dlgTitle="保存文件"/对话框标题QString filter="文本文件(*.txt);h文件(*.h);G+文件(.cpp);所有文件(*.*)"文件过滤器 QString aFileName=QFileDialog:getSaveFileName(this,dlgTitle,curPathfilter);if (!aFileName.isEmpty()ui->plainTextEdit->appendPl
12、ainText(aFileName);QColorDialog 对话框QColorDialog是选择颜色对话框,选择颜色使用静态函数 QColorDialog:getColor() 。下面是“选择颜色”按钮的代码,它为文本框的 字体选择颜色。void Dialog:on_btnColor_clicked()一 一QPalette pal=ui->plainTextEdit->palette(); 获取现有 paletteQColor iniColor=pal.c010r(QPalette:Text); 现有的文字颜色QColor color=QColorDialog:getColo
13、r(iniColor,this,"选择颜色");if (color.isValid() 选择有效pal.setC010r(QPalette:Text,color); palette 设置选择的颜色ui->plainTextEdit->setPalette(pal); 设置 palette getColor()函数需要传递一个初始的颜色,这里是将palette提取的文本颜色作为初始颜色。getColor()函数返回一个颜色变量,若在颜色对话框里取消选择,则返回的颜色值无效,通过 QColor:isValid() 函数来判断返回是否 有效。QFontDialog 对
14、话框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->plainTextEd
15、it->setFont(font);gctFont() 返回一个字体变量,但是 QFont没有类似于isValid() 的函 数来判断有效性,所以在调用 getFont() 函数时以引用方式传递一个逻辑变量 ok,调用后通过判断ok是否为true 来判断字体选择是否有效。QInputDialog标准输入对话框QInputDialog有单行字符串输入、整数输入、浮点数输入、列表框选择输 入和多行文本等多种输入方式,图 3是其中4种界面效果。H输入文字对话框? X请输入文件名新建文件. txt0 策| Cancel i喻入浮点数对话噂? X箱七型点数厘13-:OK Cancel ,输入整数对
16、话梃? X谩匿字体大小10圄KCancel门条目选择对话推? X请迭择级别须、OKCancel图3 QinputDialog 4 种输入对话框输入文字QInputDialog:getText()函数显示一个对话框用于输入字符串,传递的参数包括对话框标题、提示标签文字、缺省输入、编辑框响应模式等。其中编 辑框响应模式是枚举类型QLineEdit:EchoMode ,它控制编辑框上文字的显示 方式,正常情况下选择 QLineEdit:Normal ;如果是输入密码,选择 QLineEdit:Password 。代码如下:void Dialog:on_btnInputString_clicked()
17、 输入字符串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,
18、echoMode,defaultInput, &ok);if (ok && !text.isEmpty()ui->plainTextEdit->appendPlainText(text);输入整数使用QInputDialog:getInt()函数输入一个整数,下面的代码为文本选择字体大小:void Dialog:on_btnInputInt_clicked()/输入整数QString dlgTitle="输入整数对话框"QString txtLabel="设置字体大小"int defaultValue=ui->p
19、lainTextEdit->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(inputVal
20、ue);ui->plainTextEdit->setFont(font);输入整数对话框使用一个SpinBox组件输入整数,getInt() 需要传递的 参数包括数值大小范围、步长、初始值,确认选择输入后,将输入的整数值作 为文本框字体的大小。输入浮点数使用QInputDialog:getDouble()函数输入一个浮点数,输入对话框使用一个QDoubleSpinBox作为输入组件,getDouble()的输入参数需要输入范围、初始值、小数点位数等。代码如下:void Dialog:on_btnInputFloat_clicked() 输入浮点数QString dlgTitle=&
21、quot;输入浮点数对话框"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
22、:asprintf("输入了一个浮点数:%.2f",inputValue);ui->plainTextEdit->appendPlainText(str); 下拉列表选择输入使用QInputDialog:getItem()可以从一个ComboBox组件的下拉列表中选择输入。代码如下:void Dialog:on_btnInputItem_clicked()条目选择输入QStringList items; /ComboBox 列表的内容items <<"优秀"<<"良好"<<"合
23、格"<<"不合格"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-&
24、gt;plainTextEdit->appendPlainText(text);getItem() 函数需要一个 QStringList 变量为其ComboBox组件做条目初 始化,curIndex 指明初始选择项,editable 表示对话框里的ComboBoxi否可 编辑,若不能编辑,则只能在下拉列表中选择。QMessageBox消息对话框简单信息提示消息对话框QMessageBox用于显示提示、警告、错误等信息,或进行确认 选择,由几个静态函数实现这些功能(详见表1) o其中warning。、information。、critical() 和about() 这几个函数的输入参数和使
25、用方法相同,只是信息提示的图标有区别。例如,warning。 的函数原型是:StandardButton QMessageBox:warning(QWidget *parent, const QString&title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)其中,parent是对话框的父窗口,指定父窗口之后,打开对话框时,对话 框将自动显示在父窗口的上方中间位置;title是对话框标题字符串;text是对话框需要显7K的信息字符串;b
26、uttons是对话框提供的按钮,缺省只有一个 OK按钮;defaultButton是缺省选择的按钮,缺省表示没有选择。warning() 函数的返回结果是StandardButton 类型。对话框上显示的按 钮和缺省选中按钮也是StandardButton 类型。StandardButton 是各种按钮的 定义,如 OK、Yes、No Cancel 等,其枚举取值是 QMessageBox:Ok、 QMessageBox二Cancel、QMessageBox二Close 等。详见Qt帮助文档中的StandardButton 类型的说明。对于 warning() 、 information()
27、、 critical() 和 about()这几种对话框,它们一般只有一个OK按钮,且无须关心对话框的返回值。所以,使用缺省的 按钮设置即可。 infornnation 消息框X文件已经打开,字体大小已设置0K 1 warning 消息框 X文件内容已经被修改/ I 0K1 c市值悄息框X有不明程序访问网络. h bout消息框X我开发的数据查看软件VI。 保苗所有版权图4 QMessageBox的几种消息提示对话框例如,下面是程序中调用QMessageBox信息显示的代码(显示的几个对话框 如图4所示):void Dialog:on_btnMsgInformation_clicked()一一
28、QString dlgTitle="information 消息框";QString strInfo="文件已经打开,字体大小已设置"QMessageBox:information(this, dlgTitle, strInfo, QMessageBox:Ok,QMessageBox:NoButton);void Dialog:on_btnMsgWarning_clicked()一一QString dlgTitle="warning 消息框"QString strInfo="文件内容已经被修改 "QMessageB
29、ox:warning(this, dlgTitle, strInfo);void Dialog:on_btnMsgCritical_clicked()一一QString dlgTitle="critical 消息框"QString strInfo="有不明程序访问网络"QMessageBox:critical(this, dlgTitle, strInfo);void Dialog:on_btnMsgAbout_clicked()一一QString dlgTitle="about 消息框";QString strInfo="
30、我开发的数据查看软件V1.0 n保留所有版权"QMessageBox:about(this, dlgTitle, strInfo);确认选择对话框QMessageBox:question()函数用于打开一个选择对话框,提示信息,并 提供Yes、No OK Cancel等按钮,用户单击某个按钮返回选择,如常见的文 件保存确认对话框如图5所示。|一9 Questiori 消息框文件已被修改,是否保存修改?vesNoCancel图 5 QMessageBox: question。生成的对话框静态函数QMessageBox:question() 的原型如下:StandardButton QMessageBox二question(QWidget *parent,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报书:高质量充分就业下大学生就业能岗匹配评价与提升路径研究
- 课题申报书:高校学生教育管理法治化的问题与对策研究
- 上海南湖职业技术学院《新媒体与体育》2023-2024学年第一学期期末试卷
- 12 总也倒不了的老屋 公开课一等奖创新教案
- 上海南湖职业技术学院《计算机制图》2023-2024学年第一学期期末试卷
- 上海民远职业技术学院《生物地理学实验》2023-2024学年第一学期期末试卷
- 上海南湖职业技术学院《网络广告》2023-2024学年第一学期期末试卷
- 19《父爱之舟》(教学实录)2024-2025学年部编版语文五年级上册
- 上海科创职业技术学院《跨境电子商务概论》2023-2024学年第一学期期末试卷
- 上海建设管理职业技术学院《跨境电子商务运营综合实训》2023-2024学年第一学期期末试卷
- 网络安全与信息保密培训
- 2024年国家电投招聘笔试参考题库含答案解析
- 牛津译林版英语七年级上册期末复习之作文
- 读蔬项目定位方案
- 保安企业承接大型活动安保任务资质评定与管理规范
- 金属挤压共(有色挤压工)中级复习资料练习试题附答案
- 投标报价得分计算表Excele
- 医院放射科辐射评估报告
- 【“农超对接”对农户收入的影响调查报告8700字】
- 2023高二英语外研版新教材选择性必修二全册课文原文(精校)
- 生物研究性学习活动结题报告质壁分离
评论
0/150
提交评论