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

}

常用方法:

相关推荐
阿里嘎多学长3 分钟前
2026-08-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
默辨6 分钟前
我用Java后端的视角读了一遍JoyAgent-JDGenie
java·开发语言
常山云栈8 分钟前
如何理解python中的鸭子模(类)型?
开发语言·python
y = xⁿ12 分钟前
DeepSeek harness工具系统什么设计的?
开发语言·python
luj_176816 分钟前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
ttwuai20 分钟前
Go 后台接入 CAS 单点登录后,原来的权限怎么继续生效?
开发语言·后端·golang
断点之下27 分钟前
C++类和对象:六个默认成员函数详解
开发语言·c++
吴声子夜歌33 分钟前
Java——类、对象及方法(二)
java·开发语言
2401_8906034036 分钟前
Python入门语法(一)
java·开发语言·python