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

来源:互联网 发布:mmd动作数据怎么做 编辑:程序博客网 时间:2024/05/21 19:45

/******************************************************
* 课程名 :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<QFile>头文件,即可创建文件对象,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

原创粉丝点击