Как установить полноэкранный режим QWidget (но «настоящий» полноэкранный режим, изменить разрешение, установить модальный режим для всей системы)? - PullRequest
3 голосов
/ 23 февраля 2012

Я пытаюсь создать игру с использованием Qt, потому что это так здорово;) и у вас есть все необходимое для бесплатного. Единственная проблема заключается в изменении системного разрешения и установке «реального» полноэкранного режима QWidget (или QGLWidget).

Кто-нибудь из вас сумел сделать что-то подобное? Какова была переносимость такого подхода? Я хочу развернуть свое приложение на всех настольных системах.

Может быть, использовать SDL или что-то вроде SMFL, чтобы сделать его полноэкранным?

Пожалуйста, поделитесь своими хаки!

Приветствия.

Ответы [ 3 ]

8 голосов
/ 23 февраля 2012

This ...

my_widget->setWindowState(Qt::WindowFullScreen);

... переводит ваш виджет в полноэкранное разрешение.Разве это не то, что вам нужно?

Редактировать: В качестве альтернативы вы можете вызвать слот showFullScreen .

Редактировать 2:

  1. WIN API
  2. EnumDisplaySettings
  3. ChangeDisplaySettings
  4. Подробная информация
X11 Я не знаком с этим, вы можете задать новый вопрос о том, как изменить разрешение экрана здесь Mac То же, что и X11
2 голосов
/ 23 февраля 2012

Сначала вы должны установить соответствующие флажки окна, чтобы сделать ваш виджет модальным, а также избавиться от фрейма оконного менеджера, чтобы он стал действительно полноэкранным

widget->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);

и после этого звонка widget->showFullScreen();, как сказал Экс.

0 голосов
/ 20 мая 2014

Полноэкранный режим:

topwidget->setWindowState(topwidget->windowState() ^ Qt::Window);
...