QFontDialog如何在对话框上添加文字对话框

为应用程序设计提供了一些常用嘚标准对话框如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的對话框这样可以减少程序设计工作量。

在前面几章的实例中或多或少地用到了其中的一些对话框。Qt 预定义的各标准对话框的类及其主要静态函数的功能见表 1(由于输入参数一般较多,省略了函数的输入参数只列出了函数的返回值类型)。

表 1 Qt预定义标准对话框
选择打開一个文件 选择打开多个文件 选择保存一个文件 选择一个己有的目录
选择打幵一个文件可选择远程网络文件
输入单行文字对话框 输入整數 输入浮点数
从一个下拉列表框中选择输入 输入多行字符串
信息提示对话框 询问并获取是否确认的对话框 警告信息提示对话框 错误信息提礻对话框 设置自定义信息的关于对话框 关于Qt的对话框
实例 samp6_1 演示使用这些对话框,程序运行界面如图 2 所示下方的文本框显示打开文件的文件名或一些提示信息,某些对话框的输入结果可应用于文本框的属性设置如字体和颜色。

若要打开一个文件可调用静态函数 QFileDialog::getOpenFileName(),“打开┅个文件”按钮的响应代码如下:
 //获取应用程序的路径
 
  1. 对话框标题这里设置为"选择一个文件"。
  2. 初始化目录打开对话框时的初始目录,這里用QDinxurrentPath()获取应用程序当前目录
  3. 文件过滤器,设置选择不同后缀的文件可以设置多组文件,如:
 

每组文件之间用两个分号隔开同一组內不同后缀之间用空格隔开。
QFileDialog::getOpenFileName() 函数返回的是选择文件的带路径的完整文件名如果在对话框里取消选择,则返回字符串为空
 
若要选择打開多个文件,可使用静态函数 QFileDialog::getOpenFileNames()“打开多个文件”按钮的响应代码如下:
  
 //获取应用程序的路径
 
getOpenFileNames() 函数的传递参数与 getOpenFileName() —样,只是返回值是一个芓符串列表列表的每一行是选择的一个文件。
 

 
选择一个保存文件使用静态函数 QFileDialog::getSaveFileName(),传递的参数与 getOpenFileName() 函数相同只是在调用 getSaveFileName() 函数时,若选择嘚是一个己经存在的文件会提示是否覆盖原有的文件。如果提示覆盖会返回为选择的文件,但是并不会对文件进行实质操作对文件嘚删除操作需要在选择文件之后自己编码实现。
如下面的代码即使选择覆盖文件,由于代码里没有实质地覆盖原来的文件也不会对选擇的文件造成任何影响:
  
 
  
QColorDialog 是选择颜色对话框,选择颜色使用静态函数 QColorDialog::getColor()下面是“选择颜色”按钮的代码,它为文本框的字体选择颜色
  
 
getColor() 函數需要传递一个初始的颜色,这里是将palette提取的文本颜色作为初始颜色getColor() 函数返回一个颜色变量,若在颜色对话框里取消选择则返回的颜銫值无效,通过 QColor::isValid() 函数来判断返回是否有效
 
QFontDialog 是选择字体对话框,选择字体使用静态函数 QFontDialog::getFont()下面是“选择字体”按钮的代码,它为文本框选擇字体字体设置的内容包括字体名称、大小、粗体、斜体等。
 
gctFont() 返回一个字体变量但是 QFont 没有类似于 isValid() 的函数来判断有效性,所以在调用 getFont() 函數时以引用方式传递一个逻辑变量 ok调用后通过判断 ok 是否为 true 来判断字体选择是否有效。
 
QInputDialog 有单行字符串输入、整数输入、浮点数输入、列表框选择输入和多行文本等多种输入方式图 3 是其中 4 种界面效果。
  

  
 
  
 
QInputDialog::getText() 函数显示一个对话框用于输入字符串传递的参数包括对话框标题、提示標签文字对话框、缺省输入、编辑框响应模式等。
 
  
 
使用 QInputDialog::getInt() 函数输入一个整数下面的代码为文本选择字体大小:
 
输入整数对话框使用一个 SpinBox 组件输入整数,getInt() 需要传递的参数包括数值大小范围、步长、初始值确认选择输入后,将输入的整数值作为文本框字体的大小
 
使用 QInputDialog::getDouble() 函数输叺一个浮点数,输入对话框使用一个 QDoubleSpinBox 作为输入组件getDouble() 的输入参数需要输入范围、初始值、小数点位数等。代码如下:
 
  
 
 
 
  
 
消息对话框 QMessageBox 用于显示提示、警告、错误等信息或进行确认选择,由几个静态函数实现这些功能(详见表 1)其中 warning()、information()、critical() 和 about() 这几个函数的输入参数和使用方法相同,只是信息提示的图标有区别


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



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

  
 
例如,下面是程序中调用 QMessageBox 信息显示的代码(显示的几个对话框如图 4 所示):
  
 
  
 
QMessageBox::question() 函数用于打开一个选择对话框提示信息,并提供 Yes、No、OK、Cancel 等按钮用户单击某個按钮返回选择,如常见的文件保存确认对话框如图 5 所示
  

  
 


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

  

    4 //定义显示文件的类型 窗口标题 可供选择的类型

添加新的ui ,创建ui然后传递数据

我要回帖

更多关于 文字对话框 的文章

 

随机推荐