作业需求:
完成文本编辑器的文件另存功能
完成过程:
#include "widget.h"
#include "ui_widget.h"
#include<QMessageBox>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_font_clicked()
{
bool ok;
QFont f = QFontDialog::getFont(&ok,QFont("宋体",10),this,"选择字体");
if(ok)
{
//ui->textEdit->setFont(f); //所有字体进行改变
ui->textEdit->setCurrentFont(f); //将所选中的字体改变
}else
{
QMessageBox::information(this,"提示","未选中字体");
}
}
void Widget::on_color_clicked()
{
QColor c=QColorDialog::getColor(); //获取颜色
//将选中的颜色放到选中的字体上
//ui->textEdit->setTextColor(c); //设置字体颜色
ui->textEdit->setTextBackgroundColor(c);//设置字体背景色
}
//打开文件按钮对于的槽函数
void Widget::on_open_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_save_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,"","保存文件失败");
}
}
![](https://img-blog.csdnimg.cn/img_convert/11d2e8a6687a8175d12dde848bb7ebda.png)
![](https://img-blog.csdnimg.cn/img_convert/a5914b608197b4da128d763cc4dc5721.png)