QT——QFIie和QFileInfo文件类

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();

}

常用方法:

相关推荐
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone2 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054962 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月2 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
m0_531237172 天前
C语言-数组练习进阶
c语言·开发语言·算法
Railshiqian2 天前
给android源码下的模拟器添加两个后排屏的修改
android·开发语言·javascript
雪人不是菜鸡2 天前
简单工厂模式
开发语言·算法·c#