使用QPixmap显示图片

在QT中,经常需要我们显示图片(作为背景,游戏元素,菜单背景,等待)。

本文将用最简洁的方法介绍如何将图片素材显示在指定控件的指定位置。

一.基础知识

QPixmap

该类可以加载(load)一幅 png 图片,这个图片需要提前加载到工程qrc文件中作为项目资源。

QPixmap Class | Qt GUI 6.5.2 官方文档

QPainter

QPainter Class | Qt GUI 6.5.2 官方文档

该类用来在执行绘制的动作。

比如,Qt 创口需要刷新的时候,将图片绘制到当前窗口QWidget上的指定位置,显示出来。

其中,QPainter 就包括绘制一个QPixmap 加载的图片数据。

二.开发过程

首先,创建一个名称为paintertest的Qt默认的Widget程序。

接着选择Qt Resource File 把我们挑选好的图片添加进来

确保图片已经全部放在文件夹中

将我们选择好的文件都放入res文件夹中

现在所有的图片资源都添加了进来

在Widget中增加paintEvent虚函数

void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);//设置画家
    QPixmap pix;//使用pixmap来加载我们的资源图片
    pix.load(":/new/prefix1/picture1.jpeg");//这里要填写图片所在的路径
    painter.drawPixmap(0,0,this->width(),this->height(),pix);//表示在widget的(0,0)位置绘制一张宽高和
    //widget相等的图
 
}

paintEvent函数的内部实现

这样我们就给这个widget添加了一个背景

三.其他插入图片的方式

如果我们还想在其他地方添加图片呢?比如在一个button或者Label上加一幅图

我们先通过ui放置一个Label

接着我们把这张图片的大小设置成与Label一样的。(scaled函数是用来裁剪图片大小的)

最后通过setPixmap将这张图片在Label上显示出来

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    QPixmap pic;
    QSize size;//画框大小
 
    pic.load(":/new/prefix1/picture2.jpeg");
 
    //设置图片显示尺寸
    size.setHeight(ui->label->height());
    size.setWidth(ui->label->width());
 
    //照片处理
    pic=pic.scaled(size,Qt::IgnoreAspectRatio);
    //显示
    ui->label->setPixmap(pic);
 
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++程序员Carea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值