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