Qt 笔记 : 标准对话框

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界面与业务逻辑通过数据对象对接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值