Как разместить окно программы по центру на любом мониторе не зная разрешения в Qt. На одномониторной системе.
Asked
Active
Viewed 505 times
3
-
вопрос непонятен – Pavel Gridin Jul 31 '19 at 17:53
-
Запуск окна по центру монитора не зная разрешения экрана в Qt. – Даниил Макаров Jul 31 '19 at 17:55
-
На любом мониторе в многомониторной системе, или на любой одномониторной системе? дополните вопрос, кнопка "править" – Kromster Jul 31 '19 at 19:08
-
1в Qt можно получить разрешение см. QDesktopWidget. Перемещение окна надо встроить в обработку showEvent, т.е. когда будет известна толщина рамки окна – Pavel Gridin Jul 31 '19 at 19:09
-
QDesktopWidget устарел, в справочной документации не рекомендуется его использовать. – Даниил Макаров Aug 03 '19 at 07:54
1 Answers
1
Как вариант:
MainWindow w;
//Окно программы растянуть на весь монитор
w.showFullScreen();
//получить его размер, равный размеру монитора
const auto screenSize = w.size();
//вернуть обычный размер
w.showNormal();
//переместить в центр
w.move(screenSize.width()/2 - w.size().width()/2,
screenSize.height()/2 - w.size().height()/2);
magrif
- 2,789
-
Работает код: w.setGeometry ( QStyle::alignedRect ( Qt::LeftToRight, Qt::AlignCenter, w.size(), a.screenAt(w.pos())->availableGeometry() ) ); – Даниил Макаров Aug 04 '19 at 18:23