专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

QT 编程如何让图像跟着窗体的大小而变化

发布时间:2010-05-30 21:22:41 文章来源:www.iduyao.cn 采编人员:星星草
QT 编程怎么让图像跟着窗体的大小而变化
RT

那位大侠教教 本人刚刚接触 谢谢了

------解决方案--------------------
重载窗体的resizeEvent函数,然后再画一遍。
------解决方案--------------------
C/C++ code

Quote:
#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

Quote:
#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);
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: