Я создаю QSplashScreen
в конструкторе QMainWindow
:
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();
}
Заставка отображается с верхним левым углом в центре экрана. Простой обходной путь — переместить его (так как его размер известен), как указано выше.
В соответствии с документы:
Заставка появляется в центре экрана.
Так что здесь не так?
Возможно, я был слишком быстр, чтобы опубликовать это как вопрос.
После некоторого тестирования я понял, что QSplashScreen
не центрируется, когда имеет пустой QPixmap
,
Других решений пока нет …