【Qt-QFile-QDir】

■ QDataStream

描述QDataStream 类(数据流)QDataStream 类为QIODevice提供序列化的二进制数据。
是一个编码后的二进制流,它与操作系统等无关。

QFile fileModify(filePath);
if(!fileModify.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)){
        
	qDebug() << "cart.par file open failed!";     
	return;
}
QDataStream dataStream(&fileModify);
QVector<int> numVec;
for(int i=0; i<100; i++){
         
	numVec.push_back(i);
}
for(auto n : mumVec){
         
	dataStream << n << "      "
}
fileModify.close();

QTextStream QTextStream 类(文本流)
QTextStream 类:用于对数据进行文本格式的读/写操作,可在 QString、QIODevice或 QByteArray 上运行,比如把数据输出到 QString、QIODevice 或 QByteArray 对象上,或进行相反的操作。

QFile cartFile(filePath);
if(!cartFile.open(QIODevice::ReadWrite | QIODevice::Text))
{
        
	qDebug() << "Open cart.part file failed!";     
	return;
}
QStringList fileContent;
QTextStream readWrite(&cartFile);
QString line = readWrite.readLine();
fileContent << line;
cartFile.close();

■ QDial

    /* 实例化对象和设置显示位置与大小 */
    dial = new QDial(this);
    dial->setGeometry(300, 100, 200, 200);
    /* 设置页长(两个最大刻度的间距)*/
    dial->setPageStep(10);
    /* 设置刻度可见 */
    dial->setNotchesVisible(true);
    /* 设置两个凹槽之间的目标像素数 */
    dial->setNotchTarget(1.00);
    /* 设置dial值的范围 */
    dial->setRange(0,100);
    /* 开启后可指向圆的任何角度 */
    //dial->setWrapping(true);
    /* 实例化对象和设置显示位置与大小 */
    label = new QLabel(this);
    label->setGeometry(370, 300, 200, 50);
    /* 初始化为0km/h */
    label->setText("0km/h");
    /* 信号槽连接 */
    connect(dial, SIGNAL(valueChanged(int)),
            this, SLOT(dialValueChanged(int)));
}

MainWindow::~MainWindow()
{
   
}

void MainWindow::dialValueChanged(int val)
{
   
    /* QString::number()转换成字符串 */
    label->setText(QString::number(val) + "km/h");
}

■ QDir

/转\(斜杠转反斜杠)
QDir::toNativeSeparators接口
QString path = "C:/temp/test.txt";
path = QDir::toNativeSeparators(path);
\转/(反斜杠转斜杠)
QString path = "C:\\temp\\test.txt";
path = QDir::fromNativeSeparators(path);

■ QFile

#include <QFile>
/* QFile类型对象 */
QFile file;
/* 获取文件的路径 */
QString fileName = QFileDialog::getOpenFileName(this);
/* 指向文件 */
file.setFileName(fileName);
/* 判断文件是否存在 */
if (!file.exists())
    return false;

/* 以读写的方式打开 */
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    return false;

/* 读取文本到textEdit */
textEdit->setPlainText(file.readAll());
/* 关闭文件 */
file.close();
/* 以只读的方式打开 */
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    return;

/* 转换为字节数组 */
QByteArray strBytes = str.toUtf8();
/* 写入文件 */
file.write(strBytes, strBytes.length());
/* 关闭文件 */
file.close();



相关推荐

  1. Qt-QFile-QDir

    2023-12-25 19:52:04       53 阅读
  2. QtQDir类的使用示例

    2023-12-25 19:52:04       53 阅读
  3. 用QTextStream和QFile在读取文件上面有什么区别

    2023-12-25 19:52:04       60 阅读
  4. <span style='color:red;'>QT</span>

    QT

    2023-12-25 19:52:04      31 阅读
  5. <span style='color:red;'>QT</span>

    QT

    2023-12-25 19:52:04      40 阅读
  6. Qt 使用qm文件

    2023-12-25 19:52:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 19:52:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 19:52:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 19:52:04       87 阅读
  4. Python语言-面向对象

    2023-12-25 19:52:04       96 阅读

热门阅读

  1. 不义游戏(二)

    2023-12-25 19:52:04       48 阅读
  2. C++小游戏合集

    2023-12-25 19:52:04       47 阅读
  3. PHP-FPM 的主要作用和功能:

    2023-12-25 19:52:04       61 阅读
  4. c++ 关于共享指针在数组中的所有权转移

    2023-12-25 19:52:04       58 阅读
  5. 数组--[15]三数之和/medium

    2023-12-25 19:52:04       46 阅读
  6. C/C++中double类型的比较

    2023-12-25 19:52:04       59 阅读
  7. rust 项目的文件结构

    2023-12-25 19:52:04       70 阅读