2009-08-07 44 views
37

¿Cómo puedo hacer que mi widget sea de pantalla completa? He intentado algo como esto:Widget de pantalla completa

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(); 
} 

Pero el widget no se trata de paneles del sistema. ¿Alguna otra idea?

SO: Linux

Respuesta

52

QWidget::showFullScreen() es lo que necesita - funciona bajo Linux + de Windows en mis proyectos por años - pero tenga cuidado, no debe haber dos llamadas de esta función (por ejemplo, la primera llamada de QMainWindo->showFullScreen(). y luego MyWidget->showFullScreen()).

ciao, Chris

+0

Gracias. ¡Funciona mucho! – Ockonal

+4

A menos que "MyWidget" sea otra ventana MyWidget-> showFullScreen() no hará nada. –

+0

¿Qué hay de las configuraciones de pantalla múltiple con XRandr, Eyefinity o Xinerama? ¿Funciona esto correctamente? – drahnr

8

Este código le permitirá configurar una pantalla completa haciendo doble clic y volver de nuevo a la vista normal haciendo doble clic de nuevo.

void myWidget::mouseDoubleClickEvent(QMouseEvent *e) { 
    QWidget::mouseDoubleClickEvent(e); 
    if(isFullScreen()) { 
    this->setWindowState(Qt::WindowMaximized); 
    } else { 
    this->setWindowState(Qt::WindowFullScreen); 
    } 
}