По сути, вам нужно иметь способ для вложенного QGLWidget или его родителя вызывать showFullScreen () с другим экземпляром вашего QGLWidget.Затем есть способ вернуться назад.
Чтобы сделать это нажатием клавиши или щелчком мыши, вам нужно переопределить QKeyEvent и QMouseEvent для всех виджетов, которые будут иметь фокус, когда вы хотите полноэкранное отображение и полноэкранное скрытие.в качестве доступной опции.
Так, в зависимости от того, сколько окон вы открываете и отображаете отдельно от вашей части QMainWindow вашего GUI, вы можете захотеть, чтобы другие окна также поддерживали нажатие клавиши, которая будет выполнять скрытие /покажите свой полноэкранный QGLWidget.
Вот фрагмент кода того, как я это делал один раз, но только с помощью мыши:
void MyWidget::enterEvent(QEvent *)
{
if(this->isFullScreen())
{
textItem->setText("Click again to return");
}
else
textItem->setText("Click for full screen");
// if(!clearTextTimer->isActive())
// clearTextTimer->start();
clearTextTimer->start();
this->update();
}
void MyWidget::mouseReleaseEvent(QMouseEvent *event)
{
static MyWidget * w = 0;
if(pixItem->contains(mapToScene(event->pos()))
&& event->button() != Qt::NoButton
&& w == 0)
{
w = new MyWidget();
w->showFullScreen();
}
else
{
if(this->isMaximized())
this->close();
else
w->close();
delete w;
w = 0;
}
}
Вы также захотите взглянуть на grabKeyboard () и releaseKeyboard().