Qt 文件操作

该文描述了一个使用Qt库实现的主窗口应用,包括通过QFileDialog选择文件,显示文件路径,读取和保存文件内容的功能。此外,还涉及到了QTextStream和QDataStream用于文本和二进制数据的读写操作。
摘要由CSDN通过智能技术生成

头文件

#include <QFileDialog>

#include <QFile>

#include <QTextStream>

#include <QDataStream>

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}
//创建对象的形式对文件路径引入
//AcceptMode{AcceptOpen , AcceptSave}
void MainWindow::on_pushButton_clicked()
{
    //打开一个对话框然后选择要操作的文件将选取的文件的路径放到lineEdit
    QFileDialog dlg;
    //dlg.setAcceptMode(QFileDialog::AcceptSave);  //文件保存为
    //dlg.setDirectory("C:");//打开C盘
    dlg.setNameFilter(QString("src file(*.cpp) ;; Header(*.h);;"));//文件锅炉函数
                                                                  // 选取.cpp/.h文件过滤只 
                                                                   //显示该类文件
    int ret = dlg.exec();
    if(ret == QDialog::Accepted){
        ui->lineEdit->setText(dlg.selectedFiles().at(0));//打开多个文件的第一个
    }
}
    //利用静态函数的方法,访问文件返回路径
//AcceptMode{AcceptOpen , AcceptSave}
void MainWindow::on_pushButton_clicked()
{
//    //打开一个对话框然后选择要操作的文件将选取的文件的路径放到lineEdit
//    QFileDialog dlg;
//    //dlg.setAcceptMode(QFileDialog::AcceptSave);  //文件保存为
//    //dlg.setDirectory("C:");//打开C盘
//    dlg.setNameFilter(QString("src file(*.cpp) ;; Header(*.h);;"));//文件锅炉函数
//                                                                  // 选取.cpp/.h文件过滤只显示该类文件
//    int ret = dlg.exec();
//    if(ret == QDialog::Accepted){
//        ui->lineEdit->setText(dlg.selectedFiles().at(0));//打开多个文件的第一个
//    }
     //利用静态函数的方法,访问文件返回路径
    QString path = QFileDialog::getOpenFileName();
    ui->lineEdit->setText(path);

    QFile file(path);   //创建一个对象
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){  //打开文件如果不能打开则返回
        return;
    }
    ui->textEdit->setText(file.readAll());   //将打开的文件的所有内容读取到textEdit中
    file.close();
}

打开文件

//打开文件
void MainWindow::on_actionOpen_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,tr("打开"),""); //创建一个窗口
    if(fileName != NULL){
        QSettings reader(fileName,QSettings::IniFormat);
        reader.beginGroup(fileName.split("/").last().split(".").first());
        int height  = reader.value("WindowHeight").toInt();
        int width =  reader.value("WindowWidth").toInt();
        newFile(fileName.split("/").last().split(".").first(),width,height);
        Connection *newWidget = dynamic_cast<Connection *>(ui->mdiArea->currentSubWindow()->widget());
        newWidget->set(reader);
        reader.endGroup();
    }
}

另存为

//保存文件
void MainWindow::on_actionSave_triggered()
{
    QString fileName = QFileDialog::getSaveFileName(this,tr("保存"),"");
    if(fileName != NULL){
        Connection *widget =dynamic_cast<Connection*>(ui->mdiArea->currentSubWindow()->widget());
        QSettings writer(fileName,QSettings::IniFormat);
        writer.beginGroup(fileName.split("/").last().split(".").first());



        writer.setValue("FilePath",fileName);
        writer.setValue("WindowWidth",QString::number(ui->mdiArea->currentSubWindow()->width()));
        writer.setValue("WindowHeight",QString::number(ui->mdiArea->currentSubWindow()->height()));
        widget->write(writer);
        writer.endGroup();
    }
}

 textStream/dataStream

//textstream
void MainWindow::on_pushButton_2_clicked()
{
    QFile file("text.txt");
    file.open(QIODevice::WriteOnly);
    QTextStream out(&file);
    int var = 0x31323334;
    out << var ;
    file.close();
}
//datastream
void MainWindow::on_pushButton_3_clicked()
{
    QFile file("data.txt");
    file.open(QIODevice::WriteOnly);
    QDataStream out(&file);
    int var = 0x31323334;
    out << var ;
    file.close();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值