Мое приложение при запуске создает своего рода «заставку» с кнопками быстрого доступа к «Открыть», «Новый» и т. Д. Это окно-заставка размещается в середине экрана, а главное окно приложения находится за ним.
Вот код, чтобы сделать это:
void MainWindowButtonDialog::showMe()
{
setModal(false);
setWindowFlags(
#ifdef Q_WS_WIN
Qt::SplashScreen |
#endif
Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
QDesktopWidget *d = QApplication::desktop();
QRect t = d->availableGeometry(this);
move(mapToGlobal(this->geometry().topLeft()).x() + t.center().x() - width() / 2,
t.center().y()- height() / 2);
show();
raise();
}
Однако у меня есть некоторые проблемы, когда приложение работает на двух мониторах. Происходит следующее: экран-заставка, независимо от того, где запускается приложение, всегда создается на первом экране. Так что, если оконный менеджер решит открыть приложение на втором экране, заставка будет далеко-далеко в середине первого экрана... Что довольно некрасиво :(
Любая идея, как это можно исправить?