Widget de tela cheia
-
12-09-2019 - |
Pergunta
Como posso fazer meu widget em tela cheia? Eu tentei algo assim:
void MainWindow::SetFullScreen()
{
// Make our window without panels
this->setWindowFlags( Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint );
// Resize refer to desktop
this->resize( QApplication::desktop()->size() );
this->setFocusPolicy( Qt::StrongFocus );
this->setAttribute(Qt::WA_QuitOnClose, true);
qApp->processEvents();
show();
this->setFocus();
}
Mas o widget não está acima dos painéis do sistema. Alguma outra idéia?
OS: Linux
Solução
QWidget::showFullScreen()
é o que você precisa - funciona muito bem no Linux+Windows em meus projetos por anos - mas tenha cuidado, não deve haver duas chamadas dessa função (por exemplo, primeira chamada de QMainWindo->showFullScreen()
e depois MyWidget->showFullScreen()
).
Ciao, Chris
Outras dicas
Este código permitirá que você defina uma tela cheia clicando duas vezes e retornará à exibição normal clicando novamente.
void myWidget::mouseDoubleClickEvent(QMouseEvent *e) {
QWidget::mouseDoubleClickEvent(e);
if(isFullScreen()) {
this->setWindowState(Qt::WindowMaximized);
} else {
this->setWindowState(Qt::WindowFullScreen);
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow