Qt 图片加载实现自由缩放

本文介绍了如何在Qt中通过从QWidget派生并重写paintEvent方法,使用QPainter来实现图片的自由缩放功能。通过创建ShowWidget类,可以实现不仅加载图片,还能在放大后依然能够缩回原图的效果。
摘要由CSDN通过智能技术生成

加载图片可以使用QLabel ,但是QLabel不容易实现图像的自由缩放,比如放大后就不能放小等。可以使用QWidget来加载图像。具体做法就是,从QWidget派生一个类ShowWidget,重载ShowWidget中的paintEvent方法,在paintEvent中使用QPainter 来显示图片。

showwidget.h

#ifndef SHOWWIDGET_H
#define SHOWWIDGET_H

#include <QWidget>
#include <qpixmap.h>
#include <qpainter.h>

class ShowWidget : public QWidget
{
    Q_OBJECT

public:
    ShowWidget(QWidget *parent);
    ~ShowWidget();
    void ShowWidget::paintEvent(QPaintEvent *pEvent);

private:
    QPixmap img;
    QPainter painter;
};

#endif // SHOWWIDGET_H

showwidget.cpp

#include "showwidget.h"

ShowWidget::ShowWidget(QWidget *parent)
    : QWidget(parent)
{
    img.load("./0.jpg");
}

ShowWidget::~ShowWidget()
{

}

void ShowWidget::paintEvent(QPaintEv

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值