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

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 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());
}