实现文件保存功能
代码
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QFont>
#include <QFontDialog>
#include <QMessageBox>
#include <QColor>
#include <QColorDialog>
#include <QFile>
#include <QFileDialog>
#include <QSaveFile>
#include <stdio.h>
#include <QTextStream>
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_fontbtn_clicked();
void on_colorbtn_clicked();
void on_openbtn_clicked();
void on_savebtn_clicked();
private:
Ui::Widget *ui;
};
#endif
主函数
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
功能函数
#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("幼圆",20,10,false),this,"选择字体");
if(ok){
ui->textEdit->setCurrentFont(f);
}else{
QMessageBox::information(this,"提示","没有选择字体");
}
}
void Widget::on_colorbtn_clicked()
{
QColor c = QColorDialog::getColor(QColor(190,100,170),this,"选择颜色");
if(c.isValid()){
ui->textEdit->setTextColor(c);
}else{
QMessageBox::information(this,"提示","没有选择颜色");
}
}
void Widget::on_openbtn_clicked()
{
QString filename = QFileDialog::getOpenFileName(this,"选择文件","./","all file(*.*);;Text(*.txt);;Image(*.png *.jpg *.gif)");
QFile file(filename);
if(!file.open(QFile::ReadOnly)){
return;
}
QByteArray msg = file.readAll();
ui->textEdit->setText(QString::fromLocal8Bit(msg));
}
void Widget::on_savebtn_clicked()
{
QString filename = QFileDialog::getSaveFileName(this,"保存文件","./","all file(*.*);;Text(*.txt);;Image(*.png *.jpg *.gif)");
QFile file(filename);
if (file.open(QIODevice::WriteOnly)){
QTextStream out(&file);
out << ui->textEdit->toPlainText();
file.close();
}else{
QMessageBox::warning(this, tr("Error"), tr("Could not open file for writing."));
}
}
运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/e8abfe68b6d74dc2981bd8dc10a0e5b0.png)