Переключить полноэкранный режим в медиаплеере, разработанном с использованием Qt

В настоящее время я разрабатываю медиаплеер с использованием Qt. Одна из общих необходимых функций - возможность переключаться в полноэкранный режим.

По сути, холст рендеринга представляет собой виджет QGLWidget (я сделал его подклассом). Он добавляется в окно приложения, которое является главным окном этого медиаплеера. Помимо холста рендеринга, в окне приложения есть панель инструментов, строка состояния и другие небольшие виджеты. Полноэкранный режим, который я хочу реализовать, - это сделать так, чтобы холст рендеринга занимал весь экран, а другие виджеты не были видны. Между тем, я все еще могу запускать события, нажимая клавиши.

Я попытался сбросить родительский элемент холста рендеринга на 0 и вызвать функцию showFullScreen (). И я вызвал hide () в окне приложения. Это заставляет холст занимать весь экран, как и ожидалось. Однако приложение не захватывает события нажатия клавиш. В результате я не могу вернуться к нормальной жизни. Кроме того, фон холста мигает между черным и белым (фон по умолчанию белый).

В любом случае, я не думаю, что способ, который я пробовал, является лучшим способом реализовать это. Поскольку, когда я вернусь в нормальное состояние, будет происходить сложное воспроизводство. И всем приложением становится трудно управлять, потому что в полноэкранном режиме нужно будет выполнять некоторые задачи, такие как просмотр значений piexl (исходный код необработанный).

Может ли кто-нибудь предложить лучший способ реализовать переключение в полноэкранный режим?


person Scrathis    schedule 06.12.2011    source источник


Ответы (1)


Какую версию вы используете?

Предлагаю вам решение, которое вы должны опробовать. Если вы хотите использовать полноэкранный режим, попробуйте сделать копию вашего контента (если видео находится в виджете, откройте новый QWidget и скопируйте контент в новый виджет), теоретически у вас будет 2 виджета с одинаковым контентом, но вам не нужно ничего скрывать и уменьшать размер. Скажите, сработало ли это для вас.

Во-вторых, посмотрите этот пост, может быть полезно:

Наконец, прочтите еще раз, вы могли что-то пропустить: / http://doc.qt.io/qt-5/qwidget.html#showFullScreen

Скажите, если я что-то не понял, или если что-то (и что) помогло.

person Max13    schedule 06.12.2011
comment
Думаю, ваше предложение имеет для меня смысл. Я пытаюсь реализовать это в своем приложении. Я дам вам знать, как дела. - person Scrathis; 08.12.2011
comment
Я реализовал полноэкранное переключение, используя предложенный вами метод. Пока работает хорошо. Большое спасибо. @ Max13 - person Scrathis; 14.12.2011