为什么 QSplashScreen 在显示时不居中?
Why is QSplashScreen not centered when shown?
我在 QMainWindow
的构造函数中创建了一个 QSplashScreen
:
MainApp::MainApp() : QMainWindow(),
splashScreen(new QSplashScreen)
{
splashScreen->setFixedSize(350, 120);
//splashScreen->move(splashScreen->x()-175, splashScreen->y()-60); //inits with upperleft corner at screen center
splashScreen->setWindowOpacity(0.85);
splashScreen->setAttribute(Qt::WA_StyledBackground);
splashScreen->setStyleSheet("QSplashScreen { background-color: #000;"
"background-image: url('"+pathLogo+"');"
"background-repeat: no-repeat;"
"background-position: center;"
"border: 2px solid #fac805; }");
QLabel *vrsLbl = new QLabel(splashScreen);
vrsLbl->resize(350, 13);
vrsLbl->move(0, 80);
vrsLbl->setPixmap(pxVersion);
vrsLbl->setAlignment(Qt::AlignHCenter);
splashScreen->show();
}
启动画面的左上角位于屏幕中央。简单的解决方法是移动它(因为它的大小已知),如上文所述。
根据the docs:
The splash screen appears in the center of the screen.
那么这里出了什么问题?
我可能有点太快 post 这个问题了。
经过一些测试后,我发现 QSplashScreen
显然不会居中,因为它有一个空的 QPixmap
。
我在 QMainWindow
的构造函数中创建了一个 QSplashScreen
:
MainApp::MainApp() : QMainWindow(),
splashScreen(new QSplashScreen)
{
splashScreen->setFixedSize(350, 120);
//splashScreen->move(splashScreen->x()-175, splashScreen->y()-60); //inits with upperleft corner at screen center
splashScreen->setWindowOpacity(0.85);
splashScreen->setAttribute(Qt::WA_StyledBackground);
splashScreen->setStyleSheet("QSplashScreen { background-color: #000;"
"background-image: url('"+pathLogo+"');"
"background-repeat: no-repeat;"
"background-position: center;"
"border: 2px solid #fac805; }");
QLabel *vrsLbl = new QLabel(splashScreen);
vrsLbl->resize(350, 13);
vrsLbl->move(0, 80);
vrsLbl->setPixmap(pxVersion);
vrsLbl->setAlignment(Qt::AlignHCenter);
splashScreen->show();
}
启动画面的左上角位于屏幕中央。简单的解决方法是移动它(因为它的大小已知),如上文所述。
根据the docs:
The splash screen appears in the center of the screen.
那么这里出了什么问题?
我可能有点太快 post 这个问题了。
经过一些测试后,我发现 QSplashScreen
显然不会居中,因为它有一个空的 QPixmap
。