绘图设备,Qfile文件读写

本文介绍了Qt库中QPixmap、QBitmap、QImage和QPicture四种绘图设备的使用,重点讲解了它们在图像处理和存储方面的功能。QPixmap能够将绘制的内容保存到硬盘,QImage提供了直接访问像素的强大功能,而QPicture则能记录和重复绘画指令。此外,还展示了如何使用QFile进行文件读写,以及QFileInfo获取文件信息的示例。
摘要由CSDN通过智能技术生成

之前我们是通过画家类通过画家引擎画到widget上(widget也是绘图设备的子类,是的,他是多继承,也是QObject的子类)。当然绘图设备主要有四个
QPixmap,QBitmap,QImage,QPicture.

QPixmap最主要的就是可以把画的东西存到电脑的硬盘中,不是画在Widget上。Qbitmap就是只有黑白图像,相当于图片二值化,不怎么常用。

 QPixmap pix(300,300);
    QPainter painter(&pix);
    painter.setPen(QPen(Qt::green));//设置画笔颜色,不然画笔和背景都是黑色的
    painter.drawEllipse(QPoint(150,150),100,100);
    pix.save("D:\\pix.png");

QImage的功能除了和前面的一样,就比较强大,因为它提供了访问像素的方法。

void Widget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QImage img;
    img.load(":/scatter/sss.png");
    for(int i=50;i<100;i++)
    {
        for(int j=50;j<100;j++)
        {
            QRgb value=qRgb(255,0,0);
            img.setPixel(i,j,value);
        }
    }
    painter.drawImage(0,0,img);

}

在这里插入图片描述
其实这个功能就比较强大了,仿佛给我们打开了图像处理的大门,我们可以结合相关算法写出一些程序来进行简单的图像处理。

QPicture比较特别,是可以重复一些指令。
在这里插入图片描述

可以看到我们把画一个圆的指令记录在pic中并保存到D盘,但是我们后缀名是zt,瞎写的,根本无法打开,那么怎么打开呢,利用QPicture的重复指令功能,在绘图事件函数中加载到pic中,利用画家画出这个图像。

2、QFlie文件读写
在C和C++中。都有自己的文件读取函数,Qt中的文件读取就是QFile.
假设我们用ui设计这样一个界面,界面设计内容已经说过了。点击选择按钮可以弹出文件对话框选择文件,路径显示在Line edit中,文件内容显示在下面textedit。
在这里插入图片描述

connect(ui->pushButton,&QPushButton::clicked,[=](){
        QString path=QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\HP");
        ui->lineEdit->setText(path);
        QFile file(path);
        file.open(QIODevice::ReadOnly);
        QByteArray array=file.readAll();
        ui->textEdit->setText(array);

    });

在这里插入图片描述
在这里插入图片描述
当然也能往文件里写内容,用file.write函数.

Qfileinfo信息类可以获取文件的一些信息,包括大小size,类型suffix,文件名filename,文件路径filepath,创建日期,修改日期等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值