QFile类的使用
QFile类是Qt提供的文件读写类
cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//设置窗口标题
this->setWindowTitle("记事本");
//获取/设置菜单栏
QMenuBar* mb = this->menuBar();
this->setMenuBar(mb);
//给菜单栏添加菜单
QMenu* menu = new QMenu("文件");
mb->addMenu(menu);
//给菜单添加菜单项
QAction* action1 = new QAction("打开");
QAction* action2 = new QAction("另存为");
menu->addAction(action1);
menu->addAction(action2);
//创建一个输入框并把输入框插入到中心控件
box = new QPlainTextEdit(this);
this->setCentralWidget(box);
//调整输入框的字体
QFont font;
font.setPixelSize(20);
box->setFont(font);
//给两个菜单项的激活信号绑定槽函数
connect(action1,&QAction::triggered,this,&MainWindow::handler_open);
connect(action2,&QAction::triggered,this,&MainWindow::handler_save);
}
//打开文件的逻辑
void MainWindow::handler_open()
{
//创建并展示让用户选择文件的对话框,path是用户选择的文件路径
QString path = QFileDialog::getOpenFileName(this);
//将选择的文件路径展示在状态栏
QStatusBar* sb = this->statusBar();
sb->showMessage(path);
//以读方式打开文件
QFile file(path);
file.open(QIODevice::ReadOnly);
//读取文件中的所有数据
QString msg = file.readAll();
//关闭文件,防止文件描述符泄漏
file.close();
//将文件的内容显示到输入框
box->setPlainText(msg);
}
//另存文件的逻辑
void MainWindow::handler_save()
{
//创建并展示让用户选择保存文件的文件路径的对话框,path是用户选择的文件路径
QString path = QFileDialog::getSaveFileName(this);
//将选择的文件路径展示在状态栏
QStatusBar* sb = this->statusBar();
sb->showMessage(path);
//以写方式打开文件
QFile file(path);
file.open(QIODevice::WriteOnly);
//获取输入框的数据并写入新文件
QString mytext = box->toPlainText();
file.write(mytext.toUtf8());
//关闭文件
file.close();
}




QFileInfo类的使用
QFileInfo类是Qt提供的查询文件信息的类。
cpp
void MainWindow::on_pushButton_clicked()
{
//创建并展示让用户选择文件的对话框,path是用户选择的文件路径
QString path = QFileDialog::getOpenFileName(this);
//创建QFileInfo对象
QFileInfo info(path);
//输出文件信息
qDebug()<<info.path();
qDebug()<<info.suffix();
qDebug()<<info.size();
qDebug()<<info.isDir();
}
常用方法:
