qt 如何显示一个图片并使其随窗体同步缩放 答:下面给出一个从 QWidget 派生的类 ImageWidget,来设置其背景为一个图片,并可随着窗体改 变而改变,其实从下面的代码中可以引申出其它许多方法,如果需要的话,可以从这个类再派生出其 它类来使用。 头文件: ImageWidget.hpp Quote: #ifndef IMAGEWIDGET_HPP #define IMAGEWIDGET_HPP #include #include 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); }