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