使用MainWindow工程
页面编辑上,单行文本使用lineedit 多行用textedit
加上括号即位快捷键,只能使用connect连接信号与槽,如:
connect(ui->newAction,&QAction::triggered,this,&MainWindow::newActionslot);
函数与功能说明:
QfileDialog类:
需要声明
选择要打开/保存文件并返回文件名。参数: 父类对话框,文字说明,打开的路径,显示文件的类型(后缀选择),最后的参数不写即可浏览所有文件
QString filename=QFileDialog ::getOpenFileName(this,
tr("Open File"),QCoreApplication::applicationFilePath(),
tr("*.cpp"));
QString filename=QFileDialog ::getSaveFileName(this,
tr("Open File"),QCoreApplication::applicationFilePath());
filename.isEmpty()判断是否是空的,是空的返回1
QMessageBox类:
需要声明
弹出对话框,警告/提示,对异常操作提醒
QMessageBox::warning(this,"警告","请选择一个文件")
QMessageBox::information(this,"提示","请选择一个文件");
QDbeug类:
需要声明,用于调试输出
qDebug()<<filename;
Qfile类:
文件类,定义对象时即给定文件地址
QFile FILE(filename);
FILE.open(QIODevice::ReadOnly) ; 只读方式打开文件 FILE.write(内容);内容为QByteArray 数据 QByteArray ba=FILE.readAll();读取所有数据,返回为QByteArray 类型
注意:可以用 QByteArray初始化QString如 QString(ba),
QByteArray类
QByteArray ba
ba.append(QString类型数据);将QString数据接在ba后
ui->textEdit类
ui->textEdit->toPlainText()
toPlainText();将textEdit的内容保存,返回QString类型
示例:文件打开与另存
头文件:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFileDialog>
#include <QMessageBox>
#include <QDebug>
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 newActionslot();
void openActionslot();
void saveActionslot();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
MainWindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->newAction,&QAction::triggered,this,&MainWindow::newActionslot);
connect(ui->OpenAction,&QAction::triggered,this,&MainWindow::openActionslot);
connect(ui->SaveAction,&QAction::triggered,this,&MainWindow::saveActionslot);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::newActionslot()
{
ui->textEdit->clear();
this->setWindowTitle("新建文本文档.txt");
}
void MainWindow::openActionslot()
{
//弹出打开对话框,参数:父类对话框,文字说明,打开的路径,显示文件的类型(后缀选择)
//QCoreApplication::applicationFilePath()获取当前文件路径
//getOpenFileName获取文件名,若点取消返回为空
QString filename=QFileDialog ::getOpenFileName(this, tr("Open File"),QCoreApplication::applicationFilePath()
,tr("*.cpp"));
if(filename.isEmpty())
QMessageBox::warning(this,"警告","请选择一个文件");
//QMessageBox::information(this,"提示","请选择一个文件");
else
{
//调试打印数据输出
qDebug()<<filename;
//创建文件对象并打开
QFile FILE(filename);
FILE.open(QIODevice::ReadOnly) ;
//读取所有数据
QByteArray ba=FILE.readAll();
//用ba初始化QString并输出
ui->textEdit->setText(QString(ba));
FILE.close();
}
}
void MainWindow::saveActionslot()
{
QString filename=QFileDialog ::getSaveFileName(this, tr("Save File"),QCoreApplication::applicationFilePath());
if(filename.isEmpty())
QMessageBox::warning(this,"警告","请选择文件");
else
{
QFile myfile(filename);
myfile.open(QIODevice::WriteOnly);
QByteArray ba;
ba.append(ui->textEdit->toPlainText());
myfile.write(ba);
}
}
结果: