QT学习(9)——QT进行文件的读取,编码格式,获取文件信息,关于时间类型介绍

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

引出

QT学习(9)——QT进行文件的读取,编码格式,获取文件信息,关于时间类型介绍


文件操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

两种读取方式

QByteArray array = file.readAll(); // 方式一:读取全部
array += file.readLine();  // 方式二:逐行读取

编码格式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

        ui->textEdit->setText(
                    codec->toUnicode(array));

进行写操作

    // 进行写文件
    file.open(QIODevice::Append); // 追加方式写
    file.write("aaaaa");
    file.close();

完整代码

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QDebug>
#include <QTextCodec>

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

    // 点击选取文件的按钮,弹出文件对话框
    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
        QString filePath = QFileDialog::getOpenFileName(this,"打开文件","c:\\Users");

        // 将路径放文本框
        ui->lineEdit->setText(filePath);

        // 编码格式类
        QTextCodec *codec = QTextCodec::codecForName("gbk");

        // 读取内容 放入到 textEdit
        // QFile默认是utf-8
        QFile file(filePath); // 参数就是读取文件的路径
        // 设置打开方式,只读
        file.open(QIODevice::ReadOnly);

        // QByteArray array = file.readAll(); // 方式一:读取全部

        // 方式二:逐行读取
        QByteArray array;
        while (!file.atEnd()) {
            array += file.readLine();
        }

        // 将读取到的数据放入text框中
//        ui->textEdit->setText(array);
        ui->textEdit->setText(
                    codec->toUnicode(array));

        // 关闭
        file.close();

        // 进行写文件
        file.open(QIODevice::Append); // 追加方式写
        file.write("aaaaa");
        file.close();

    });
}

Widget::~Widget()
{
    delete ui;
}

文件信息

读到文件的信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后缀名

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后修改时间

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

获取参数的案例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于时间类型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

qDebug() << "时间格式化" << info.birthTime().toString("yyyy/MM/dd hh:mm:ss");

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


总结

QT学习(9)——QT进行文件的读取,编码格式,获取文件信息,关于时间类型介绍

绘图学习

新建一个项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用初体验

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

画笔颜色、宽度设置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

画笔类型设置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

画刷的使用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码

void Widget::paintEvent(QPaintEvent *event){
    // 实例化画家对象
    QPainter painter(this); // this指定的是绘图设备

    // 设置画笔
    QPen pen(QColor(255,0,0));
    pen.setWidth(2);
    pen.setStyle(Qt::DotLine);

    // 让画家使用笔
    painter.setPen(pen);


    // 设置画刷
    QBrush brush(Qt::cyan);
    brush.setStyle(Qt::Dense7Pattern);

    //画家使用画刷
    painter.setBrush(brush);

    // 线
    painter.drawLine(QPoint(0,0),QPoint(100,100));

    // 画一个圆
    painter.drawEllipse(QPoint(100,100),100,50); // 椭圆

    // 画一个矩阵
    painter.drawRect(QRect(20,20,50,50));

    // 画文字
    painter.drawText(QRect(10,200,200,50),"好好学习,天天吃饭");

}

高级设置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

抗锯齿

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    painter.drawEllipse(QPoint(100,100),50,50);
    // 设置抗锯齿能力,效率低
    painter.setRenderHint(QPainter::Antialiasing);
    painter.drawEllipse(QPoint(200,100),50,50);

画家移动

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    painter.drawRect(QRect(20,20,50,50));

    // 移动画家
    painter.translate(100,0);
    painter.drawRect(QRect(20,20,50,50));

状态保存和还原

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    // 高级的设置 ///
    QPainter painter(this); // this指定的是绘图设备
//    painter.drawEllipse(QPoint(100,100),50,50);
//    // 设置抗锯齿能力,效率低
//    painter.setRenderHint(QPainter::Antialiasing);
//    painter.drawEllipse(QPoint(200,100),50,50);

    painter.drawRect(QRect(20,20,50,50));

    // 移动画家
    painter.translate(100,0);

    // 保存画家状态
    painter.save();

    painter.drawRect(QRect(20,20,50,50));

    painter.translate(100,0);

    // 还原画家的保存状态
    painter.restore();

    painter.drawRect(QRect(20,20,50,50));

画家画图片

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

插曲:如何添加图片资源

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

右键,添加新文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

右键,open in Editor

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进行绘图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击按钮图片右移

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

int posX = 0; // 横坐标默认是0,每次点击右移

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

绘图的重绘,用update

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

超出屏幕的判断和处理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    // 画家画图片 
    QPainter painter(this); // this指定的是绘图设备
    // 如果超出屏幕,从0开始
    if(posX > this->width()){
        posX = 0;
    }
    painter.drawPixmap(posX,0,QPixmap(":/OtherSceneBg.png"));

相关推荐

  1. qt 读取配置文件

    2024-07-13 13:14:02       22 阅读
  2. qt学习:json数据文件读取写入

    2024-07-13 13:14:02       52 阅读
  3. Qt解析复杂csv格式文件

    2024-07-13 13:14:02       19 阅读
  4. QT文件介绍

    2024-07-13 13:14:02       53 阅读
  5. Qt】xml文件节点读取

    2024-07-13 13:14:02       33 阅读
  6. Qt---pro文件学习

    2024-07-13 13:14:02       25 阅读

最近更新

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

    2024-07-13 13:14:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 13:14:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 13:14:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 13:14:02       69 阅读

热门阅读

  1. 变分法笔记1

    2024-07-13 13:14:02       23 阅读
  2. 将独热码应用到神经网络中

    2024-07-13 13:14:02       22 阅读
  3. SpinalHDL之实用工具(下篇)

    2024-07-13 13:14:02       27 阅读
  4. 【Python实战因果推断】33_双重差分4

    2024-07-13 13:14:02       27 阅读
  5. Android MessageQueue 源码分析

    2024-07-13 13:14:02       14 阅读
  6. ICP经营许可证

    2024-07-13 13:14:02       22 阅读
  7. Archery 之SQL审核系统部署

    2024-07-13 13:14:02       22 阅读
  8. WordPress主题底部纯文本文章列表

    2024-07-13 13:14:02       16 阅读
  9. 数据建设实践之大数据平台(五)安装hive

    2024-07-13 13:14:02       22 阅读
  10. 山海鲸可视化——天地图画面和热力图

    2024-07-13 13:14:02       25 阅读
  11. 云计算安全需求分析与安全保护工程

    2024-07-13 13:14:02       22 阅读
  12. TypeScript

    2024-07-13 13:14:02       20 阅读