[Qt]对话框QDialog

目录

1.基本概念

2.对话框分为模态对话框和非模态对话框。

(1)模态对话框

(2)非模态对话框

3.消息对话框

(1)错误对话框

(2)信息对话框

(3)问题对话框

(4)警告对话框

4.标准对话框

(1)颜色对话框

(2)文件对话框

(3)字体对话框

5.自定义消息框


1.基本概念

Qt 中使用QDialog类实现对话框。就像主窗口一样,我们通常会设计一个类继承QDialog。QDialog(及其子类,以及所有Qt::Dialog类型的类)的对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent 的中心)。顶层窗口与非顶层窗口的区别在于,顶层窗口在任务栏会有自己的位置,而非顶层窗口则会共享其父组件的位置。

2.对话框分为模态对话框和非模态对话框。

  • 模态对话框,就是会阻塞同一应用程序中其它窗口的输入

    模态对话框很常见,比如“打开文件”功能。你可以尝试一下记事本的打开文件,当打开文件对话框出现时,我们是不能对除此对话框之外的窗口部分进行操作的。

  • 与此相反的是非模态对话框,例如查找对话框,我们可以在显示着查找对话框的同时,继续对记事本的内容进行编辑。

(1)模态对话框

(2)非模态对话框

3.消息对话框

消息对话框:包含四个公有成员函数,实现消息功能(错误、信息、问题、警告

include < QMessageBox >

(1)错误对话框

示例代码:

参数1:父亲;参数2:对话框标题;参数3:提示信息:

#include < QMessageBox >     
QMessageBox::critical(this,“critical”,“错误”);

(2)信息对话框

示例代码:  

参数1:父亲;参数2:对话框标题;参数3:提示信息:

#include < QMessageBox >     
QMessageBox::information(this,“info”,“信息”);   

(3)问题对话框

示例代码:

参数1:父亲;参数2:对话框标题;参数3:提示信息;参数4:两个选项;参数5:默认关联回车选项  

#include < QMessageBox >     
//QMessageBox::question(this,“ques”,“提问”);     
QMessageBox::question(this,“ques”,“提问”,QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel);    

   

返回值为StandButton类型,可以通过返回值判断用户输入

(4)警告对话框

示例代码:

参数1:父亲;参数2:对话框标题;参数3:提示信息;

#include < QMessageBox >     
QMessageBox::warning(this,“warning”,“警告”);     

4.标准对话框

所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。

  • QColorDialog: 选择颜色;

  • QFileDialog: 选择文件或者目录;

  • QFontDialog: 选择字体;

  • QInputDialog: 允许用户输入一个值,并将其值返回;

  • QMessageBox: 模态对话框,用于显示信息、询问问题等;

  • QPageSetupDialog: 为打印机提供纸张相关的选项;

  • QPrintDialog: 打印机配置;

  • QPrintPreviewDialog:打印预览;

  • QProgressDialog: 显示操作过程。

(1)颜色对话框

示例代码:

#include <QColorDialog>     
QColor color=QColorDialog::getColor(QColor(255,0,0));

(2)文件对话框

示例代码:

参数1:父亲;参数2:对话框标题;参数3:文件路径;参数4:过滤条件。返回值为选取的路径

#include < QFileDialog >   
QString strf=QFileDialog::getOpenFileName(this,“打开文件”,“D:\data”,"(*.rar)");      

(3)字体对话框

示例代码:

#include <QFontDialog> 
QFont gf=QFontDialog::getFont(&flag,QFont(“华文仿宋”,36));

5.自定义消息框

Qt 支持模态对话框和非模态对话框。

模态与非模态的实现:

  • 使用QDialog::exec()实现应用程序级别的模态对话框

  • 使用QDialog::open()实现窗口级别的模态对话框

  • 使用QDialog::show()实现非模态对话框。

猜你喜欢

转载自blog.csdn.net/m0_53415522/article/details/127714423