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

}

常用方法:

相关推荐
踢足球092916 小时前
寒假打卡:2026-2-7
java·开发语言·javascript
薛定谔的猫喵喵17 小时前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
岱宗夫up17 小时前
Python 数据分析入门
开发语言·python·数据分析
码界筑梦坊17 小时前
325-基于Python的校园卡消费行为数据可视化分析系统
开发语言·python·信息可视化·django·毕业设计
多恩Stone17 小时前
【RoPE】Flux 中的 Image Tokenization
开发语言·人工智能·python
李日灐17 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
Risehuxyc17 小时前
备份三个PHP程序
android·开发语言·php
lly20240617 小时前
PHP Error: 常见错误及其解决方法
开发语言
网安墨雨17 小时前
Python自动化一------pytes与allure结合生成测试报告
开发语言·自动化测试·软件测试·python·职场和发展·自动化