赞
踩
包含头文件#include <QFile>
读写模式如下 枚举
1 先使用string 类型来接受打开文件的返回值
QFileDialog::getOpenFileName(this,"文件","./"); //打开一个文件
2 构建文件对象
Qfile ff (qstring)接受打开文件的返回值
打开文件读写模式 只读 只写等等
最后记得关闭文件
- connect(ui->filebutton,&QPushButton::clicked,this,[this](){
- QString abc = QFileDialog::getOpenFileName(this,"文件","./");
-
- ui->lineEdit->setText(abc);
- //textedit 中读取文件
- QFile ff(abc);//构建文件对象
-
- if(!ff.open(QIODevice::ReadOnly)) return ;//文件打开失败
-
- while(!ff.atEnd())
- {
- char str[1020]={0};
- ff.readLine(str,sizeof str
- );
- ui->textEdit->append(str);//一行一行添加
- }
-
- ff.close();
- });
文件保存:
QFileDialog::getSaveFileName(this,"另存为","./aabc.txt");//保存文件
- //保存二进制
- void MainWindow::on_bin_clicked()
- {
- //第四个参数过滤掉其他bin文件
- QString filename = QFileDialog::getOpenFileName(this,"dk","./we.bin","*.bin");
-
- QFile ff(filename);
- if(!ff.open(QIODevice::WriteOnly)) return;
-
- //创建数据流对象
- //传入文件对象指针
-
- QDataStream fou(&ff);
- fou<<122;//重载了<< 类似cout 输出
- fou<<"sss";
- ff.close();
- }
- void MainWindow::on_zz_clicked()
- {
-
- QString name = QFileDialog::getSaveFileName(this,"duq","./","*.bin");
- QFile ff(name);
- if(ff.open(QIODevice::ReadOnly)) return ;
-
- QDataStream kou(&ff);
-
- int num;
- QString str; //读取后放到num 和str中
- kou>>num;
- kou>>str;
-
- qDebug()<<num<<str;
- ff.close();
-
- }
QT中文件配置文件相关操作
比如一个滑动条和一个label 当我下次运行该程序时仍为我上一次操作的值
- void MainWindow::on_horizontalSlider_valueChanged(int value)
- {
- ui->label->setText("当前音量"+ QString::number(value)+"%");
-
- //创建配置文件对象
- QSettings ste("config.ini");
-
- //保存变量到配置文件中
- ste.setValue("volume",value);
- }
ste.setValue("volume",value); 将值送入volume中
- //读取配置文件
- QSettings sett("config.ini");
-
- ui->horizontalSlider->setValue(sett.value("volume").toInt());//拿到配置文件中的值
关闭后再次运行 仍为41
.h文件
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
- #include <QTextEdit>
- #include <QFileDialog>
- #include <QFile>
- #include <QTextStream>
- #include <QAction>
- #include <QMenuBar>
-
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow; }
- QT_END_NAMESPACE
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
-
- private slots:
- void onOpenFile();
- void onSaveFile();
- void onSaveAsFile();
-
- private:
- Ui::MainWindow *ui;
- QString currentFilePath;
- QTextEdit *editor;
- };
- #endif // MAINWINDOW_H
.cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent), ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
- // 设置中央部件为文本编辑器
- editor = new QTextEdit(this);
- setCentralWidget(editor);
-
- // 创建菜单栏
- QMenuBar *menuBar = new QMenuBar(this);
- setMenuBar(menuBar);
-
- // 创建文件菜单
- QMenu *fileMenu = menuBar->addMenu(tr("&File"));
-
- // 创建打开文件动作
- QAction *openAction = new QAction(tr("&Open"), this);
- fileMenu->addAction(openAction);
- connect(openAction, &QAction::triggered, this, &MainWindow::onOpenFile);
-
- // 创建保存文件动作
- QAction *saveAction = new QAction(tr("&Save"), this);
- fileMenu->addAction(saveAction);
- connect(saveAction, &QAction::triggered, this, &MainWindow::onSaveFile);
-
- // 创建另存为文件动作
- QAction *saveAsAction = new QAction(tr("Save &As..."), this);
- fileMenu->addAction(saveAsAction);
- connect(saveAsAction, &QAction::triggered, this, &MainWindow::onSaveAsFile);
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- void MainWindow::onOpenFile()
- {
- // 打开文件对话框
- QString filePath = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt);;All Files (*)"));
- if (!filePath.isEmpty()) {
- QFile file(filePath);
- if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
- QTextStream in(&file);
- editor->setText(in.readAll());
- file.close();
- currentFilePath = filePath;
- }
- }
- }
-
- void MainWindow::onSaveFile()
- {
- if (currentFilePath.isEmpty()) {
- onSaveAsFile();
- } else {
- QFile file(currentFilePath);
- if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
- QTextStream out(&file);
- out << editor->toPlainText();
- file.close();
- }
- }
- }
-
- void MainWindow::onSaveAsFile()
- {
- QString filePath = QFileDialog::getSaveFileName(this, tr("Save File As"), "", tr("Text Files (*.txt);;All Files (*)"));
- if (!filePath.isEmpty()) {
- QFile file(filePath);
- if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
- QTextStream out(&file);
- out << editor->toPlainText();
- file.close();
- currentFilePath = filePath;
- }
- }
- }
主函数
- #include <QApplication>
- #include "mainwindow.h"
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
-
- return a.exec();
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。