Qt基础 04_Qt对话框(三) 标准对话框

/******************************************************
* 课程名 :QT编程
* 时 间 :2017年6月1日(周四)下午 + 2017年6月2日(周五)上午前半段
* 工程名 :05-standardDialog
* 类 名 : standardDialog
* 内 容 :标准对话框 —— Color颜色对话框、Font字体对话框、File文件对话框、Message消息对话框
* CSDN : Qt基础 03_Qt对话框(三)
******************************************************/

前言:更改对话框标题

在构造函数中添加如下代码:

standardDialog::standardDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::standardDialog)
{
    ui->setupUi(this);
    this->setWindowTitle("标准对话框测试");
}

一、Color颜色对话框

目标:利用颜色对话框更改字体颜色
步骤一:添加头文件#include < QColorDialog >和#include < QPalette >
步骤二:新建测试字体的Label和colorButton,利用colorButton“转到槽”的属性,添加如下功能:

方法一:通过静态方法实现

void T5_Dialog::on_ColorButton_clicked()
{
      //通过静态方法实现

    //1.模态弹出颜色对话框
    QColor color = QColorDialog::getColor(Qt::black,this,"颜色对话框");

    //2.判断用户点击ok还是cancel
    if(color.isValid())
    {
        //3.修改label字体颜色
        //3.1 读
        QPalette palett = ui->testLabel->palette();

        //3.2 改
        palett.setColor(QPalette::WindowText,color);

        //3.3 写
        ui->testLabel->setPalette(palett);
    }
    else
    {
        qDebug()<<"颜色取消选择";
    }

    //在控制台输出用户选择的颜色
    QRgb rgb = color.rgb();
    qDebug()<<"#"<<QString::number(rgb,16);
}

方法二:通过静态方法实现

void T5_Dialog::on_ColorButton_clicked()
{
    //通过对象方法动态实现

    //1.创建对象
    QColorDialog colorDlg(Qt::red,this);
    //2.打开alpha通道
    colorDlg.setOption(QColorDialog::ShowAlphaChannel,true);
    //3.模态弹出
    colorDlg.exec();

    QColor color = colorDlg.currentColor();

    //4.修改label字体颜色
    //4.1 读
    QPalette palett = ui->testLabel->palette();

    //4.2 改
    palett.setColor(QPalette::WindowText,color);

    //4.3 写
    ui->testLabel->setPalette(palett);

    //在控制台输出用户选择的颜色
    QRgb rgb = color.rgb();
    qDebug()<<"#"<<QString::number(rgb,16);
}

二、Font字体对话框

目标:利用字体对话框更改字体格式
步骤一:添加头文件#include < QFontDialog >
步骤二:新建fontButton,利用fontButton“转到槽”的属性;
步骤三:F1< QFontDialog > ,找到getfont的属性说明,将其中的例子拷入槽函数,并做修改

void standardDialog::on_fontButton_clicked()
{
    bool ok;
    QFont font = QFontDialog::getFont(&ok, QFont("Times",12),this,"字体对话框");
    if (ok) {
        // font is set to the font the user selected
        ui->testLabel->setFont(font);
    } else {
        // the user canceled the dialog; font is set to the default
        // application font, QApplication::font()
    }
}

三、File文件对话框

目标:利用文件对话框打开、保存文件
步骤一:添加头文件#include < QFileDialog > 和 #include < QFile >
步骤二:新建fileopenButton,利用fileopenButton“转到槽”的属性;
步骤三:F1< QFileDialog >找到getOpenFileName的属性说明。添加如下功能:

/* 文件操作步骤:1.打开文件 2.操作文件 3.关闭文件 */
void standardDialog::on_fileopenButton_clicked()
{
    //通过打开对话框获取文件路径
    QString path = QFileDialog::getOpenFileName(this,"文件打开对话框","D:/",
                                                "图片(*png *jpg *gif);;文本文件(*txt);;所有文件(*)");
    //可打印出完整文件路径
    qDebug()<< path ;

    //使用#inlude头文件,即可创建文件对象,F1查看帮助文档
    //创建文件对象
    QFile file(path);

    //打开文件
    if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        //打开成功
        //读
        QByteArray array = file.readAll();
        //显示到label
        //其中的fromLocal8Bit(array)是为了将读取的内容从本地编码转为UTF-8
        ui->testLabel->setText(QString::fromLocal8Bit(array));
    }
    else
    {
        //打开失败
        qDebug()<<"文件打开失败";
    }
    //关闭
    file.close();
}

小作业:同时打开n个文件,将文件内容读出

四、Message消息对话框

目标:实现消息对话框
步骤一:添加头文件#include < QMessageBox >
步骤二:新建MessageButton,利用MessageButton“转到槽”的属性;
步骤三:F1< QMessageBox >找到getOpenFileName的属性说明。添加如下功能:

void standardDialog::on_messageButton_clicked()
{
    //提问对话框
    int ret = QMessageBox::question(this,"提问","你们了解Qt吗?",QMessageBox::Yes,QMessageBox::No);
    if(QMessageBox::Yes == ret)
    {
        qDebug() << "是的,我了解";
    }
    else
    {
        qDebug() << "不,我不了解";
    }

    //提示对话框
    QMessageBox::information(this,"提示","这是我们的QT课程",QMessageBox::Ok);

    //警告对话框
    QMessageBox::warning(this,"警告","上课不能玩游戏",QMessageBox::YesAll);

    //关于对话框
    QMessageBox::about(this,"关于","本课程的考核方式:小项目验收");
}

源代码:http://download.csdn.net/download/c_estbon/9863182

你可能感兴趣的:(Qt_Qt基础)