2009-08-07 51 views
37

如何讓我的部件全屏?我試過這樣的事情:全屏部件

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

但是小部件不在系統面板上。任何其他想法?

操作系統:Linux

回答

52

QWidget::showFullScreen()是你所需要的 - 在我的項目多年來在Linux +的Windows的偉大工程 - 但要小心,不應該有這個函數有兩種調用(例如QMainWindo->showFullScreen()第一個電話。然後MyWidget->showFullScreen())。

的Ciao, 克里斯

+0

謝謝。非常有用! – Ockonal 2009-08-07 20:45:33

+4

除非「MyWidget」是另一個窗口,否則MyWidget-> showFullScreen()將不會執行任何操作。 – 2009-08-07 23:18:56

+0

XRandr,Eyefinity或Xinerama的多屏設置如何?這是否正常工作? – drahnr 2010-03-21 20:34:16

8

此代碼將允許您通過雙擊來設置全屏,通過雙擊再次返回到普通視圖。

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