2010-07-09 216 views
8

你知道如何隱藏最小化,最大化和關閉Qt中的標題欄按鈕。我特別需要將它隱藏在QMainWindow上。Qt隱藏最小化,最大化和關閉按鈕

+1

難道你提到爲什麼你需要做的是什麼? – 2010-07-09 09:29:03

+0

我不想讓用戶在角落按x關閉我的應用程序。我希望他在退出手術之前做一些過程。 – ufukgun 2010-07-12 06:54:03

回答

2

只要看看Window Flags Example是如何工作的!

+1

謝謝你。其實我的主要問題是隱藏mainWindow上的關閉按鈕。 – ufukgun 2010-07-09 09:27:04

14

設置窗口標誌Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint

。注意,在某些平臺上,它的行爲以不同的方式。例如,在Mac OS X上它禁用,(不隱藏)關閉/最小化/最大化按鈕

2

這可以通過使用在QEvent的一個eventFilter ::關閉事件從主窗口

bool MainWindow::eventFilter(QObject *obj, QEvent *event) { 

    if (event->type() == QEvent::Close) { 
     event->ignore(); 
     doWhateverYouNeedToDoBeforeClosingTheApplication(); 
     return true; 
    } 
    return QMainWindow::eventFilter(obj, event); 
} 

void MainWindow::doWhateverYouNeedToDoBeforeClosingTheApplication() { 
    // Do here what ever you need to do 
    // ... 
    // ... 

    // and finally quit 
    qApp->quit(); 
} 
3

如果你被achived使用的是Qt QML然後,除去最小化,最大化和關閉按鈕,在設置窗口功能的無框窗標誌的main.qml文件,如下圖所示:

flags: Qt.FramelessWindowHint 
0

標誌:Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint

這也適用於一個窗口項

標誌:Qt.Window | Qt.WindowTitleHint

+0

基於這些名字,我不認爲這些是正確的標誌......這就是爲什麼OP有問題找到它嗎? – Taegost 2017-11-28 21:42:43

相關問題