您的位置:首页 > 编程语言 > Qt开发

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

2017-06-07 09:43 260 查看
/[b]******************************************************[/b]

* 课程名 :QT编程

* 时 间 :2017年6月1日(周四)下午 + 2017年6月2日(周五)上午前半段

* 工程名 :05-standardDialog

* 类 名 : standardDialog

* 内 容 :标准对话框 —— Color颜色对话框、Font字体对话框、File文件对话框、Message消息对话框

* CSDN : Qt基础 03_Qt对话框(三)

[b]******************************************************[/b]/

前言:更改对话框标题

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: