头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QFont> //字体头文件
#include <QFontDialog> //字体对话框头文件
#include <QMessageBox>
#include <QColorDialog> //画板对话框头文件
#include <QColor> //颜色头文件
#include <QFileDialog> //文件对话框类
#include <QFile> //文件类
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_pushButton_clicked();
void on_pushButton_2_clicked();
void on_dakai_clicked();
void on_lingchun_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_pushButton_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_pushButton_2_clicked()
{
QColor c=QColorDialog::getColor(); //获取颜色
//将获取的颜色放到选中的字体上
// ui->textEdit->setTextColor(c); //设置字体颜色
ui->textEdit->setTextBackgroundColor(c); //设置背景颜色
}
void Widget::on_dakai_clicked()
{
QString filename=QFileDialog::getOpenFileName(this, //父组件
"open file", //窗口标题
"./" //起始路径
"txt(*.txt)"); //过滤器
//上面只是获取了路径,并没有打开
//创建文件对象,打开给定的路径下的文件
QFile file(filename);
if(file.open(QFile::ReadWrite))
{
//打开了文件,可以进行读写文件
//将文件中的内容读取出来
QByteArray msg=file.readAll();
ui->textEdit->setText(QString::fromLocal8Bit(msg));
}
else
{
//文件打开失败
QMessageBox::information(this," ","文件打开失败");
}
//关闭文件
file.close();
}
void Widget::on_lingchun_clicked()
{
QString filename=QFileDialog::getSaveFileName(this, //父组件
"save file", //窗口标题
"./", //起始路径
"txt(*.txt)") //保存的文件名
//上面只是获取了保存路径,并没有写入
//创建文件对象,打开给定的路径下的文件以只写方式打开
QFile file(filename);
if(file.open(QFile::WriteOnly))
{
//打开了文件,可以进行写文件
//将文件中的所有内容读取出来,存到msg但是要进行数据类型转换
QString msg=ui->textEdit->toPlainText();
QByteArray bytes = msg.toUtf8(); // QString转QByteArray
file.write(bytes); //往文件中写入转换后的内容
}
else
{
//文件打开失败
QMessageBox::information(this," ","文件打开失败");
}
//关闭文件
file.close();
}
主函数
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
实现结果
点击另存为保存