当前位置:   article > 正文

Qt文件读写

Qt文件读写

Qt中文件读写类简述

包含头文件#include <QFile>

读写模式如下 枚举

文件读写步骤

1 先使用string 类型来接受打开文件的返回值 

QFileDialog::getOpenFileName(this,"文件","./"); //打开一个文件

2 构建文件对象 

Qfile ff  (qstring)接受打开文件的返回值

打开文件读写模式  只读 只写等等

最后记得关闭文件

文件读写代码展示

  1. connect(ui->filebutton,&QPushButton::clicked,this,[this](){
  2. QString abc = QFileDialog::getOpenFileName(this,"文件","./");
  3. ui->lineEdit->setText(abc);
  4. //textedit 中读取文件
  5. QFile ff(abc);//构建文件对象
  6. if(!ff.open(QIODevice::ReadOnly)) return ;//文件打开失败
  7. while(!ff.atEnd())
  8. {
  9. char str[1020]={0};
  10. ff.readLine(str,sizeof str
  11. );
  12. ui->textEdit->append(str);//一行一行添加
  13. }
  14. ff.close();
  15. });

文件保存:

QFileDialog::getSaveFileName(this,"另存为","./aabc.txt");//保存文件

  1. //保存二进制
  2. void MainWindow::on_bin_clicked()
  3. {
  4. //第四个参数过滤掉其他bin文件
  5. QString filename = QFileDialog::getOpenFileName(this,"dk","./we.bin","*.bin");
  6. QFile ff(filename);
  7. if(!ff.open(QIODevice::WriteOnly)) return;
  8. //创建数据流对象
  9. //传入文件对象指针
  10. QDataStream fou(&ff);
  11. fou<<122;//重载了<< 类似cout 输出
  12. fou<<"sss";
  13. ff.close();
  14. }

  1. void MainWindow::on_zz_clicked()
  2. {
  3. QString name = QFileDialog::getSaveFileName(this,"duq","./","*.bin");
  4. QFile ff(name);
  5. if(ff.open(QIODevice::ReadOnly)) return ;
  6. QDataStream kou(&ff);
  7. int num;
  8. QString str; //读取后放到num 和str中
  9. kou>>num;
  10. kou>>str;
  11. qDebug()<<num<<str;
  12. ff.close();
  13. }

QT中文件配置文件相关操作 

比如一个滑动条和一个label 当我下次运行该程序时仍为我上一次操作的值

QSettings ste("config.ini"); 配置文件

  1. void MainWindow::on_horizontalSlider_valueChanged(int value)
  2. {
  3. ui->label->setText("当前音量"+ QString::number(value)+"%");
  4. //创建配置文件对象
  5. QSettings ste("config.ini");
  6. //保存变量到配置文件中
  7. ste.setValue("volume",value);
  8. }

ste.setValue("volume",value);  将值送入volume中

读取配置文件

  1. //读取配置文件
  2. QSettings sett("config.ini");
  3. ui->horizontalSlider->setValue(sett.value("volume").toInt());//拿到配置文件中的值

关闭后再次运行 仍为41

使用Qt实现一个简要的文本编辑器 1 可以打开文件显示到编辑器中 2 可编辑文件内容 保存文件 无需快捷保存 3可以另存为新的文件 分文件编写

.h文件

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QTextEdit>
  5. #include <QFileDialog>
  6. #include <QFile>
  7. #include <QTextStream>
  8. #include <QAction>
  9. #include <QMenuBar>
  10. QT_BEGIN_NAMESPACE
  11. namespace Ui { class MainWindow; }
  12. QT_END_NAMESPACE
  13. class MainWindow : public QMainWindow
  14. {
  15. Q_OBJECT
  16. public:
  17. MainWindow(QWidget *parent = nullptr);
  18. ~MainWindow();
  19. private slots:
  20. void onOpenFile();
  21. void onSaveFile();
  22. void onSaveAsFile();
  23. private:
  24. Ui::MainWindow *ui;
  25. QString currentFilePath;
  26. QTextEdit *editor;
  27. };
  28. #endif // MAINWINDOW_H

.cpp

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent)
  4. : QMainWindow(parent), ui(new Ui::MainWindow)
  5. {
  6. ui->setupUi(this);
  7. // 设置中央部件为文本编辑器
  8. editor = new QTextEdit(this);
  9. setCentralWidget(editor);
  10. // 创建菜单栏
  11. QMenuBar *menuBar = new QMenuBar(this);
  12. setMenuBar(menuBar);
  13. // 创建文件菜单
  14. QMenu *fileMenu = menuBar->addMenu(tr("&File"));
  15. // 创建打开文件动作
  16. QAction *openAction = new QAction(tr("&Open"), this);
  17. fileMenu->addAction(openAction);
  18. connect(openAction, &QAction::triggered, this, &MainWindow::onOpenFile);
  19. // 创建保存文件动作
  20. QAction *saveAction = new QAction(tr("&Save"), this);
  21. fileMenu->addAction(saveAction);
  22. connect(saveAction, &QAction::triggered, this, &MainWindow::onSaveFile);
  23. // 创建另存为文件动作
  24. QAction *saveAsAction = new QAction(tr("Save &As..."), this);
  25. fileMenu->addAction(saveAsAction);
  26. connect(saveAsAction, &QAction::triggered, this, &MainWindow::onSaveAsFile);
  27. }
  28. MainWindow::~MainWindow()
  29. {
  30. delete ui;
  31. }
  32. void MainWindow::onOpenFile()
  33. {
  34. // 打开文件对话框
  35. QString filePath = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt);;All Files (*)"));
  36. if (!filePath.isEmpty()) {
  37. QFile file(filePath);
  38. if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
  39. QTextStream in(&file);
  40. editor->setText(in.readAll());
  41. file.close();
  42. currentFilePath = filePath;
  43. }
  44. }
  45. }
  46. void MainWindow::onSaveFile()
  47. {
  48. if (currentFilePath.isEmpty()) {
  49. onSaveAsFile();
  50. } else {
  51. QFile file(currentFilePath);
  52. if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
  53. QTextStream out(&file);
  54. out << editor->toPlainText();
  55. file.close();
  56. }
  57. }
  58. }
  59. void MainWindow::onSaveAsFile()
  60. {
  61. QString filePath = QFileDialog::getSaveFileName(this, tr("Save File As"), "", tr("Text Files (*.txt);;All Files (*)"));
  62. if (!filePath.isEmpty()) {
  63. QFile file(filePath);
  64. if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
  65. QTextStream out(&file);
  66. out << editor->toPlainText();
  67. file.close();
  68. currentFilePath = filePath;
  69. }
  70. }
  71. }

主函数

  1. #include <QApplication>
  2. #include "mainwindow.h"
  3. int main(int argc, char *argv[])
  4. {
  5. QApplication a(argc, argv);
  6. MainWindow w;
  7. w.show();
  8. return a.exec();
  9. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/922823
推荐阅读
相关标签
  

闽ICP备14008679号