qt图片随窗体缩放的问题【附源码】
我使用了http://blog.csdn.net/xie376450483/article/details/5902697这个博客的方法来缩放图片,下面有源码,基本能实现我想要的功能,但是有个问题看下面的图片博客的源码是这样的
头文件: ImageWidget.h
#ifndef IMAGEWIDGET_HPP
#define IMAGEWIDGET_HPP
#include <QtCore>
#include <QtGui>
class ImageWidget : public QWidget
{
Q_OBJECT
public:
ImageWidget(QWidget *parent = 0, Qt::WindowFlags f = 0);
virtual ~ImageWidget();
protected:
void resizeEvent(QResizeEvent *event);
private:
QImage _image;
};
#endif
CPP文件: ImageWidget.cpp
#include "ImageWidget.hpp"--------------------编程问答-------------------- --------------------编程问答-------------------- 我想要的效果是上面的图片只出现一个,剧中显示图片,其他空间设置为黑色或者白色
ImageWidget::ImageWidget(QWidget *parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
_image.load("image/image_background");
setAutoFillBackground(true); // 这个属性一定要设置
QPalette pal(palette());
pal.setBrush(QPalette::Window,
QBrush(_image.scaled(size(), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation)));
setPalette(pal);
}
ImageWidget::~ImageWidget()
{
}
// 随着窗体变化而设置背景
void ImageWidget::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
QPalette pal(palette());
pal.setBrush(QPalette::Window,
QBrush(_image.scaled(event->size(), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation)));
setPalette(pal);
}
请网友们帮帮....
我是qt小白 --------------------编程问答-------------------- 求助啊 兄弟们! --------------------编程问答-------------------- 这个需求不能用QPalette来做。
需要重写paintEvent,在里面先缩放图片,先绘制整个 Widget 的单色背景,然后再把图片居中绘制出来。
补充:移动开发 , Qt