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); }