当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,