Qt(伪)自适应屏幕大小和控件按比例缩放的几个问题

最终确定的用法:

    this->showFullScreen();
    int mainWidth = this->width();
    int mainHeight = this->height();


全屏主窗口,按比例求出各子窗口的位置和宽高,初始化子窗口时 new xxx(this, w, h);

子窗口的构造函数中:

XXX::XXX(QWidget *parent, int w, int h) :
    QWidget(parent)
{
    QPixmap backgroundPix = QPixmap(":/new/prefix1/res/XXX.png").scaled(w,h);

    QLabel* lab = new QLabel(this);
    lab->setGeometry(0,0,w,h);
    lab->setPixmap(backgroundPix);

}


中间踩过的坑:

① 子窗口之前不用show()也能正常显示,但主窗口showMaximized()或showFullScreen()后必须要show();

showMaximized()后再求宽高this->width(),得不到最新结果?showFullScreen()后则求得的宽高正常变化。

你可能感兴趣的:(日常踩坑,Qt)