Сделайте автоподгонку окна Qt под размер экрана - PullRequest
15 голосов
/ 14 января 2011

У меня есть приложение Qt, которое необходимо загрузить на мобильные устройства с экранами разных размеров.Как сделать так, чтобы он автоматически соответствовал размеру экрана мобильного устройства?

Ответы [ 3 ]

16 голосов
/ 17 января 2011

Если вы хотите, чтобы главное окно вашего приложения занимало весь экран сразу после его запуска, используйте QWidget::showMaximized, например,

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    MyMainWidget widget;
    widget.showMaximized();
    return app.exec();
}

Обратите внимание, что showMaximized - это удобная функция, которая внутренне вызывает QWidget::setWindowState, упомянутый Эндрю:

void QWidget::showMaximized()
{
    // ...
    setWindowState((windowState() & ~(Qt::WindowMinimized | Qt::WindowFullScreen))
                   | Qt::WindowMaximized);
    show();
}
6 голосов
/ 14 января 2011

Если вы действительно хотите геометрию, вы можете использовать QDesktopWidget, чтобы получить информацию об отображении, включая геометрию его.

Если вы просто хотите, чтобы размер окна был измененправильно, однако, вы должны использовать QWidget::setWindowState, как Андрей предложил.

3 голосов
/ 14 января 2011

void QWidget::setWindowState ( Qt::WindowStates windowState )

Устанавливает состояние окна в windowState. Состояние окна представляет собой комбинацию OR для Qt :: WindowState: Qt :: WindowMinimized, Qt :: WindowMaximized, Qt :: WindowFullScreen и Qt :: WindowActive.

Из документации QWidget. Надеюсь, это поможет

...