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);
 - }
 
运行结果