Как расположить окно по центру экрана?

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(поправил тэг коде)
 
Строка 1: Строка 1:
В том случае, когда нужно расположить окно по центру экрана удобно использовать класс QDesktopWidget:
В том случае, когда нужно расположить окно по центру экрана удобно использовать класс QDesktopWidget:
-
{{code|qt|code=void SomeWindow::moveWindowToCenter() {
+
<source lang=cpp-qt>
 +
void SomeWindow::moveWindowToCenter() {
     QDesktopWidget desktop;
     QDesktopWidget desktop;
     QRect rect = desktop.availableGeometry(desktop.primaryScreen());  
     QRect rect = desktop.availableGeometry(desktop.primaryScreen());  
Строка 9: Строка 10:
     move(center);
     move(center);
}
}
-
}}
+
</source>
Еще один вариант
Еще один вариант
-
{{code|qt|code=void SomeWindow::moveWindowToCenter()
+
<source lang=cpp-qt>void SomeWindow::moveWindowToCenter()
{
{
     QRect frect = frameGeometry();
     QRect frect = frameGeometry();
Строка 18: Строка 19:
     move(frect.topLeft());
     move(frect.topLeft());
}
}
-
}}
+
</source>
[[Категория:Qt FAQ]]
[[Категория:Qt FAQ]]

Текущая версия на 15:45, 18 октября 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());
}