MainWindow中添加自定义
widget跑到外面了,自定义widget的构造函数已经应用了MainWindow的
指针,为什么呢?
自定义的Duck类构造函数
- Duck::Duck(const QString &duckImgPath,QWidget *parent) :
- QWidget(parent),duckImgPath(duckImgPath)
- {
- label = new QLabel;
- movie = new QMovie(duckImgPath);
- label->setMovie (movie);
- movie->start ();
- label->show ();
- }
MainWindow构造函数
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow),
- shrinkMultiple(2),speed(10)
- {
- duck = new Duck(":/img/duck.gif",this);
- QWidget *centerWindow = new QWidget(this);
- this->setCentralWidget(centerWindow);
- QVBoxLayout *mainLayout = new QVBoxLayout;
- mainLayout->addWidget(duck);
- mainLayout->addWidget (new QLabel(tr("dasfdsfdsfds")));
- centerWindow->setLayout(mainLayout);
- catImg = new QPixmap(":/img/cat.jpg");
- int width = catImg->width () / shrinkMultiple;
- int height = catImg->height () / shrinkMultiple;
- catImgRect = new QRect(10,10,width,height);
- QRect rect = this->geometry ();
- rect.setWidth (width*4);
- rect.setHeight (height*4);
- rect.setX (20);
- rect.setY (50);
- this->setGeometry (rect);
- // ui->setupUi(this);
- }
运行结果