Qt 圖片加載實現自由縮放

加載圖片可以使用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(QPaintEvent *pEvent)
{
    painter.begin(this);
    painter.drawPixmap(rect(), img);
    painter.end();
}

 

實現效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章