给楼主帖一个吧,基类可以是任意QWidget派生类:
- class MyForm : public QWidget
- {
- Q_OBJECT
- public:
- DefaultForm(QWidget *parent = 0, Qt::WindowFlags f = 0);
- ~DefaultForm();
- protected:
- void resizeEvent(QResizeEvent *event);
- void paintEvent(QPaintEvent *event);
- private:
- QPixmap _pxbg;
- };
- DefaultForm::DefaultForm(QWidget *parent, Qt::WindowFlags f)
- : QWidget(parent, f)
- {
- _pxbg = QPixmap("/myimage/background.jpg").scaled(
- size(), Qt::IgnoreAspectRatio,
- Qt::SmoothTransformation);
- }
- DefaultForm::~DefaultForm()
- {
- }
- void DefaultForm::resizeEvent(QResizeEvent *event)
- {
- QWidget::resizeEvent(event);
- if (event->oldSize() != event->size())
- {
- _pxbg = QPixmap("/myimage/background.jpg").scaled(
- event->size(), Qt::IgnoreAspectRatio,
- Qt::SmoothTransformation);
- }
- }
- void DefaultForm::paintEvent(QPaintEvent *event)
- {
- QPainter painter(this);
- painter.drawPixmap(event->rect(), _pxbg);
- QWidget::paintEvent(event);
- }