作业:
完成文本编辑器的文件另存功能
功能代码如下:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_fontbtn_clicked()
{
bool ok; //判断是否选中颜色
QFont f = QFontDialog::getFont(&ok,QFont("宋体",10),this,"选择字体");
//参数1:是否选中状态
//参数2:初始字体
//参数3:父组件
//参数4:对话框标题
if(ok)
{
//字体选择成功
//ui->textEdit->setFont(f); //将所有字体进行改变
ui->textEdit->setCurrentFont(f); //将选中的字体进行设置
}
else
{
//未选择字体
QMessageBox::information(this,"提示","未选择字体");
}
}
void Widget::on_colorbtn_clicked()
{
QColor c = QColorDialog::getColor(); //获取颜色
//将获取的颜色放到选中的字体上
//ui->textEdit->setTextColor(c); //设置字体颜色
ui->textEdit->setTextBackgroundColor(c); //设置字体背景颜色
}
//打开文件按钮对应的槽函数
void Widget::on_openbtn_clicked()
{
QString fileName = QFileDialog::getOpenFileName( //获取文件路径
this, //父组件
"open file", //窗口标题
"./", //起始路径
"Txt(*.txt)" //过滤器
);
//创建文件对象,打开给定的路径下的文件
QFile file(fileName);
if(file.open(QFile::ReadWrite))
{
//打开文件,可以进行读写数据
//将文件中的内容读取出来
QByteArray msg = file.readAll();
//将读取出来的内容放到ui界面上
ui->textEdit->setText(QString::fromLocal8Bit(msg));
}
else
{
QMessageBox::information(this,"","文件打开失败");
}
}
//另存文件按钮对应的槽函数
void Widget::on_savebtn_clicked()
{
QString fileName = QFileDialog::getSaveFileName( //获取文件路径
this, //父组件
"save file", //窗口标题
"./", //起始路径
"Txt(*.txt)" //过滤器
);
//创建文件对象,打开给定的路径下的文件
QFile file(fileName);
if(file.open(QFile::ReadWrite))
{
QByteArray msg = ui->textEdit->toPlainText().toLocal8Bit();
file.write(msg);
}
else
{
QMessageBox::information(this,"","文件另存失败");
}
}