Чтобы восстановить геометрию и состояние последнего окна, я использую код, аналогичный тому, который был предложен в этом документе Qt :
void MainWindow::closeEvent(QCloseEvent *event)
{
QSettings settings("MyCompany", "MyApp");
settings.setValue("geometry", saveGeometry());
QMainWindow::closeEvent(event);
}
void MainWindow::readSettings()
{
QSettings settings("MyCompany", "MyApp");
restoreGeometry(settings.value("geometry").toByteArray());
}
Просмотр исходного кода Qt (qwidget.cpp), QWidget::saveGeometry
и его брат restoreGeometry
в основном представляют собой сериализацию геометрии, номера экрана и состояния окна.
Теперь приложение отображает заставку во время запуска,Я бы хотел показать такой экран-заставку на том же мониторе, где будет отображаться окно приложения. Я могу установить геометрию заставки на основе QScreen
геометрия , но мне нужен номер экрана для завершения этого кода:
const auto screens = qApp->screens();
const auto geometry = screens[/* screen number here */]->geometry();
Как получить только номер экрана из сохраненногогеометрия?