2009-08-07 8 views
37

Tôi làm cách nào để hiển thị toàn màn hình tiện ích của mình? Tôi đã thử một cái gì đó như thế này:Tiện ích toàn màn hình

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

Nhưng tiện ích không nằm trên bảng hệ thống. Bạn có ý tưởng nào khác không?

Hệ điều hành: Linux

Trả lời

52

QWidget::showFullScreen() là những gì bạn cần - công trình lớn trong Linux + Windows trong các dự án của tôi trong nhiều năm qua - nhưng phải cẩn thận, không nên có hai cuộc gọi của chức năng này (ví dụ như cuộc gọi đầu tiên của QMainWindo->showFullScreen(). và sau đó MyWidget->showFullScreen()).

ciao, Chris

+0

Cảm ơn. Hoạt động rất nhiều! – Ockonal

+4

Trừ khi "MyWidget" là một cửa sổ khác MyWidget-> showFullScreen() sẽ không làm gì cả. –

+0

cách thiết lập nhiều màn hình với XRandr, Eyefinity hoặc Xinerama? Điều này có hoạt động đúng không? – drahnr

8

Mã này sẽ cho phép bạn thiết lập một toàn màn hình bằng cách nhấp đúp và trở về quan điểm bình thường bằng cách nhấp đúp lần nữa.

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