2023-12-05 Qt学习总结9
2023-12-13 12:37:18
点击 <C 语言编程核心突破> 快速C语言入门
Qt学习总结
前言
要解决问题: 学习qt最核心知识, 多一个都不学.
二十五 QFile文件操作
QFile是Qt提供的文件读写类,支持对文件进行读写、复制、重命名、删除等操作。常用C++函数如下:
-
打开文件:
QFile file(fileName)
-
打开文件模式:
-
只读模式:
file.open(QIODevice::ReadOnly)
-
只写模式:
file.open(QIODevice::WriteOnly)
-
读写模式:
file.open(QIODevice::ReadWrite)
-
追加模式:
file.open(QIODevice::Append)
-
-
写入文件:
file.write("Hello World!")
-
读取文件内容:
-
读取所有数据:
file.readAll()
-
读取一行数据:
file.readLine()
-
读取指定字节数的数据:
file.read(numBytes)
-
-
获取文件大小:
file.size()
-
检查文件是否打开:
file.isOpen()
-
关闭文件:
file.close()
-
拷贝文件:
QFile::copy(sourceFileName, targetFileName)
-
重命名文件:
QFile::rename(oldName, newName)
-
删除文件:
QFile::remove(fileName)
示例:
建立一个界面, 利用信号和槽机制, 打开一个文件, 并将文件内容显示出来
编辑内容, 然后保存.
代码:
Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QFile>
#include <QMessageBox>
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui
{
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_openButton_clicked();
void on_saveButton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "Widget.h"
#include "./ui_Widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_openButton_clicked()
{
QFile file(ui->fileLineEdit->text());
if (file.open(QIODevice::ReadOnly))
{
QMessageBox::information(this, "提示", "打开文件");
}
else
{
QMessageBox::information(this, "提示", "未打开文件");
}
ui->textEdit->setText(QString(file.readAll()));
file.close();
}
void Widget::on_saveButton_clicked()
{
QFile file(ui->fileLineEdit->text());
if (file.open(QIODevice::WriteOnly | QIODevice::Truncate))
{
QMessageBox::information(this, "提示", "打开文件");
}
else
{
QMessageBox::information(this, "提示", "未打开文件");
}
file.write(ui->textEdit->toPlainText().toUtf8());
file.close();
}
总结
点击 <C 语言编程核心突破> 快速C语言入门
文章来源:https://blog.csdn.net/m0_54206076/article/details/134958063
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!