QT中使用QDialog实现对话框。
- 创建对话框,如果其parent为NULL,则对话框作为顶层窗口,否则则作为父组件的子对话框(默认出现在parent的中心)
- 对话框分为模态和非模态(能不能操作除了对话框以外的位置)
标准对话框
所谓标准对话框,是Qt 内置的一系列对话框,用于简化开发。
事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。
这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt 的内置对话框大致分为以下几类:
QColorDialog | 选择颜色; |
QFileDialog | 选择文件或者目录; |
QFontDialog | 选择字体; |
QInputDialog | 允许用户输入一个值,并将其值返回; |
QMessageBox | 模态对话框,用于显示信息、询问问题等; |
QPageSetupDialog | 为打印机提供纸张相关的选项; |
QPrintDialog | 打印机配置; |
QPrintPreviewDialog | 打印预览; |
QProgressDialog | 显示操作过程。 |
模态对话框
//定义一个对话框
QDialog dialog;
dialog.setwindowTitle(tr("Hello,dialog! "));//设置对话框标题
dialog.exec() ;//阻塞对话框
非模态对话框
QDialog *dialog = nlew QDialog;
dialog->setAttribute(Qt:: wA_DeleteOnclose);//关闭窗口自动释放
dialog-> setwindowTitle(tr( "Hello, dialog ! "));
dialog->show ) ;
消息对话框
//消息对话框
QMessageBox::about(this ,"标题", "内容");
//询问对话框
int ret = QMessageBox::question(this,"标题","你需要吗",QMessageBox::Open|QMessageBox: Save);
if(ret == QMessageBox: :Open)
{
qDebug()<<"open" ;
}
else
qDebug()<<"save" ;