기본적으로 중첩 된 QGLWidget 또는 부모가 showFullScreen()을 QGLWidget의 다른 인스턴스와 호출하는 방법이 필요합니다. 그런 다음 돌아갈 길이 있습니다.
키 누르기 또는 마우스 클릭으로 이것을 수행하려면 전체 화면 표시 및 전체 화면 숨기기를 사용할 수있는 옵션으로 사용할 때 포커스가있는 모든 위젯에 대해 QKeyEvent 및 QMouseEvent를 다시 구현해야합니다.
GUI의 QMainWindow 부분에서 몇 개의 팝업 창이 나타나고 개별적으로 표시되는지에 따라 다른 창에서도 전체 화면 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()에서보고 싶은 것입니다.
기본적으로 숨겨져있는이 케이스에 대해 별도의 QGLWidget을 만들 수 있습니다. 창 크기를 변경 ('setParent()'참조)하면 전체 화면으로 변경하고 다시 복원하려면 부모를 다시 변경할 수 있습니다. – bkausbk