/******************************************************
* 课程名 :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("标准对话框测试");
}
目标:利用颜色对话框更改字体颜色
步骤一:添加头文件#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);
}
目标:利用字体对话框更改字体格式
步骤一:添加头文件#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()
}
}
目标:利用文件对话框打开、保存文件
步骤一:添加头文件#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个文件,将文件内容读出
目标:实现消息对话框
步骤一:添加头文件#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