简单记事本实现,字体,颜色,保存和打开
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
//字体按钮对应的槽函数
void MainWindow::on_font_clicked()
{
bool ok;//返回是否选中字体
//调出系统字体对话框
QFont f= QFontDialog::getFont(&ok,
QFont("隶书",10,5,false),
this,"字体设置");
//功能:调出系统字体对话框
//参数1:返回选中字体状态
//参数2:初始字体
//参数3:父组件
//参数4:对话框标题
//将选中的字体设置到文本编辑器中
if(ok){
//设置字体
//ui->textEdit->setFont(f);//将全部字体设置
ui->textEdit->setCurrentFont(f);
}else{
//不设置
}
}
//颜色按钮对应的槽函数
void MainWindow::on_color_clicked()
{
QColor c=QColorDialog::getColor(QColor(35,203,190),this,"颜色");
//判断颜色是否合法
if(c.isValid()){
//将该颜色添加到当前选中的文本
ui->textEdit->setTextColor(c);//设置字体颜色
//ui->textEdit->setTextBackgroundColor(c);//设置字体背景色
}
}
//打开文件对应的槽函数
void MainWindow::on_open_clicked()
{
//找到要打开文件的路径
QString fileName=QFileDialog::getOpenFileName(
this,//父组件
"选择文件",//窗口名
"./",//其实路径
"Txt(*.txt);;c程序(*.c);;C++程序(*.cpp);;all(*.*)"//过滤器
);
//qDebug()<<fileName;
//使用QFile类实例化一个对象,可以用获取的路径名进行构造
QFile f(fileName);
//打开文件
if(!f.open(QFile::ReadWrite)){//以读写打开文件
return;
}
//读取文件内容,将文件内容放到ui界面
QByteArray msg = f.readAll();//将文件中的内容全部读取出来
//将读取出来的内容放到ui界面
ui->textEdit->setText(msg);
}
//保存文件对应的槽函数
void MainWindow::on_save_clicked()
{
//要保存文件的路径
QString fileName=QFileDialog::getSaveFileName(
this,//父组件
"选择保存的文件",//窗口名
"./",//其实路径
"Txt(*.txt);;c程序(*.c);;C++程序(*.cpp);;all(*.*)"//过滤器
);
//qDebug()<<fileName;
//使用QFile类实例化一个对象,可以用获取的路径名进行构造
QFile f(fileName);
//打开文件
if(!f.open(QFile::WriteOnly)){//以读写打开文件
return;
}
if(fileName==""){
return;
}
//读取输入框内的内容,写入到文件中
f.write(ui->textEdit->toPlainText().toLocal8Bit());
f.close();
return;
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QFont>//字体类
#include <QFontDialog>//字体对话框类
#include <QColor>//颜色类
#include <QColorDialog>//颜色对话框类
#include <qfiledialog.h>//文件对话框类
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_font_clicked();
void on_color_clicked();
void on_open_clicked();
void on_save_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H