下面的代码是使用QLabel对图片的显示:
QLabel * label = new QLabel(this);
QPixmap pixmap;
pixmap.load(":/res/LevelCompletedDialogBg.png");
label->setGeometry(0,0,pixmap.width(),pixmap.height());
label->setPixmap(pixmap);
// label->move((this->width() - pixmap.width())*0.5, pixmap.height());
label->move(10,10);
label->show();
这段代码在某个QWidget派生类的构造函数中可行,但是通过某个槽函数却不能显示Label。
这是因为上面的代码没有调用show函数!但是为什么在构造函数可以呢,这是因为在Qt中show函数会显示本身和其子widget:
所以父widget假如调用了show,那么就算其子widget没调用show也会显示,但是要是子widget在父widget构造的时候不存在而是后面通过函数创建的,就需要自行手动show!