Qt为开发者提供了一些可复用的对话框类型
Qt提供的可复用对话框全部继承自QDialog类
Qt中的标准对话框遵循相同的使用方式
//定义对话框对象
DialogType dlg(this);
//设置对话框属性
dlg.setPropertyXXX(value);
if(dlg.exec() == DialogType::Value)
{
//获取对话迎数据
Type v = dlg.getDialogValue();
//处理对话框数据
//.....
}
消息对话框
-提示重要信息
-强制进行操作选择
//构造消息对话框对象
QMessageBox msg(this);
//设置消息对话框的相关属性
msg.setWindowTitle("Message Title");
msg.setText("This is message content!");
msg.setICon(QMessageBox::Information);
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
if(msg.exec() == QMessageBox::Ok)
{
qDebug() << "Button OK is Clicked!";
}
文件对话框
-Open Mode
应用程序中需要用户打开一个外部文件
-Save Mode
应用程序中需要讲当前内容存储于用户指定的外部文件中
QFileDialog fd(this);
//save mode : QFileDialog::AcceptSave
fd.setAcceptMode(QFileDialog::AcceptOpen);
/*
文件类型过滤
过滤定义规则:显示名(*.后缀*.后缀*.后缀)
*/
dlg.setFilter("Text(*.txt)");
//multi-selection: QFileDialog::EXistingFiles
fd.setFileMode(QFileDialog::ExistingFiles);
if(fd.exec() == QFileDialog::Accepted)
{
QStringList fs = fd.selectedFiles();
//something to do
}
颜色对话框
Qt中预定义颜色对话框QColorDialog类
QColorDialog类用于提供指定颜色对话框部件
//构建颜色对话框对象
QColorDialog dlg(this);
//设置颜色对话框的相关属性
dlg.setWindowTitle("color Editor");
dlg.setCurrentColor(Qt::red); //初始颜色
if(dlg.exec() == QColorDialog::Accepted)
{
qDebug() << dlg.selectedColor();
}
Qt中QColor类用来在程序中表示颜色的概念
QColor类同时支持多种颜色表示方式
-RGB:以红,绿,蓝为基准的三色模型
-HSV:以色调,饱和度,明度为基准的六角锥体模型
-CMYK:以天蓝,品红,黄色,黑为基准的全彩印刷色彩模型
输入对话框
Qt中预定义输入对话框QInputDialog类
QInputDialog类用于需要临时进行数据输入的场合
//构造输入对话框对象
QInputDialog dlg(this);
//设置输入对话框的相关属性
dlg.setWindowTitle("Input...");
dlg.setLabelText("Please enter a msg:");
dlg.setInputMode(QInputDialog::InInput);
if(dlg.exec() == QInputDialog::Accepted)
{
qDebug() << dlg.intValue();
}
字体对话框
Qt中预定义字体对话框QFontDialog类
QFontDialog类用于提供选择字体对话框部件
//构造字体对话框对象
QFontDialog dlg(this);
//设置字体对话框的相关属性
dlg.setWindowTitle("Font Editor");
//初始字体
dlg.setCurredntFont(QFont("Courier New"),11,QFont::Blod));
if(dlg.exec() == QFontDialog::Accepted)
{
qDebug() << dlg.selectedFont();
}
进度对话框
Qt中预定义进度对话框QProgressDialog类
QProgressDialog类用于显示进度信息
QProgressDialog类用于需要用户等待的场合
//构造进度对话框对象
QProgressDialog dlg(this);
//设置进度对话框的相关属性
dlg.setWindowTitle("Updating...");
dlg.setLabelText("Downloading...");
dlg.setMinimum(0); //设置最小进度值
dlg.setMaximum(1000); //设置最大进度值
dlg.setValue(35); //设置进度值
dlg.exec();
打印对话框
Qt中预定义打印对话框QPrintDialog类
QPrintDialog类用于设置打印相关的参数信息
//构造打印对话框对象
QPrintDialog dlg(this);
//设置打印对话框的相关属性
dlg.setWindowTitle("Print Dialog");
if(dlg.exec() == QPrintDialog::Accepted)
{
QPrinter *P = dlg.printer();
QTextDocument td;
//td.setPlainText("Printer object test!");
td.setHtml("<h1>Print html object test</hl>");
p->setOutputFileName("C:\\test.xps");
td.print(p);
}
QPrinter类是打印设备及其参数的封装
QPrinter类封装了系统中的打印设备的驱动接口
QPinter以相同的方式使用系统中的不同打印设备
标准对话框设计模式
-GUI界面部件产生数据对象
-业务逻辑中的其他对象使用数据对象
-GUI界面与业务逻辑通过数据对象对接