头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QFont>//字体类
#include<QFontDialog>//字体对话框类
#include<QColor>//颜色类
#include<QColorDialog>
#include<qfiledialog.h>//文件对话框
#include<QDebug>//输入
#include<QMessageBox>//对话框
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_frontbtn_clicked();
void on_colorbtn_clicked();
void on_openbtn_clicked();
void on_savebtn_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
源文件
#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_frontbtn_clicked()
{
bool ok;
//调出系统字体的对话框
QFont f = QFontDialog::getFont(&ok,QFont("隶书",10,5,true),this,"字体");
//功能:调出系统的字体对话框
//参数1:返回选中字体状态
//参数2:初始字体
//参数3:父组件
//参数4:对话框标题
//将选中的字体对话框
if(ok)
{
//ui->msgEdit->setFont(f);//将全局字体进行设置
ui->msgEdit->setCurrentFont(f);//将选中字体进行设置
}
}
//颜色按钮对应的槽函数
void Widget::on_colorbtn_clicked()
{
//调取颜色对话框,选中颜色
QColor l = QColorDialog::getColor(QColor(0,255,0),this,"颜色");
//判断颜色是否合法
if(l.isValid())
{
//将颜色添加到当前选中的文本
//ui->msgEdit->setTextColor(l);//设置字体颜色前景色
ui->msgEdit->setTextBackgroundColor(l);
}
}
//"打开文件"对应的槽函数
void Widget::on_openbtn_clicked()
{
QString fileName = QFileDialog::getOpenFileName(
this,//父组件
"选择",//标题
"./",//起始目录
"Txt(*.txt);;c程序(*.c);;c++程序(*.cpp);;all(*.*)");//过滤器
// qDebug()<<fileName;
//2.使用Qfile类实例化一个对象,可以用获取的路径名进行构造
QFile l(fileName);
//3.打开文件
if(!l.open(QFile::ReadWrite))
{
return;
}
//4.读取文件内容,将文件内容放到ui界面
QByteArray msg = l.readAll();//将文件中的内容全部读取出来
//5.将读取出来的内容放到ui界面
ui->msgEdit->setText(msg);
//6.关闭文件
l.close();
}
//保存按钮对应的槽函数
void Widget::on_savebtn_clicked()
{
QString fileName = QFileDialog::getSaveFileName(
this,//父组件
"选择",//标题
"./",//起始文件
"Txt(*.txt);;c程序(*.c);;c++程序(*.cpp);;all(*.*)");//过滤器
//文件操作
//1.实例化一个文件对象
QFile f(fileName);
//2.判断文件存不存在
if(!f.exists())
{
QMessageBox::information(this,
"信息",
"文件不存在");
}
if(f.open(QFile::ReadWrite) == false)
{
QMessageBox::information(this,
"信息",
"文件打开失败");
}
// 设置 QTextStream 编码格式为 UTF-8
QTextStream out(&f);
out.setCodec("UTF-8");
//获取ui界面的内容
QString msg = ui->msgEdit->toPlainText();
//将内容写入文件中
out << msg; // 使用 QTextStream 写入文件
//关闭文件
f.close();
}