Как расположить окно по центру экрана?
Материал из Wiki.crossplatform.ru
(Различия между версиями)
Void* (Обсуждение | вклад) м («Как расположить виджет по центру экрана?» переименована в «Как расположить окно по центру экрана?») |
|||
Строка 8: | Строка 8: | ||
center.setY(center.y() - (this->height()/2)); | center.setY(center.y() - (this->height()/2)); | ||
move(center); | move(center); | ||
+ | } | ||
+ | }} | ||
+ | |||
+ | Еще один вариант | ||
+ | {{code|qt|code=void SomeWindow::moveWindowToCenter() | ||
+ | { | ||
+ | QRect frect = frameGeometry(); | ||
+ | frect.moveCenter(QDesktopWidget().availableGeometry().center()); | ||
+ | move(frect.topLeft()); | ||
} | } | ||
}} | }} | ||
[[Категория:Qt FAQ]] | [[Категория:Qt FAQ]] |
Версия 11:07, 19 апреля 2009
В том случае, когда нужно расположить окно по центру экрана удобно использовать класс QDesktopWidget:
void SomeWindow::moveWindowToCenter() { QDesktopWidget desktop; QRect rect = desktop.availableGeometry(desktop.primaryScreen()); //получаем прямоугольник с размерами как у экрана QPoint center = rect.center(); //получаем координаты центра экрана center.setX(center.x() - (this->width()/2)); center.setY(center.y() - (this->height()/2)); move(center); }
Еще один вариант
void SomeWindow::moveWindowToCenter() { QRect frect = frameGeometry(); frect.moveCenter(QDesktopWidget().availableGeometry().center()); move(frect.topLeft()); }