2010-07-09 54 views
8

¿Sabe cómo ocultar minimizar, maximizar y cerrar los botones de la barra de título en Qt. Especialmente necesito ocultarlo en QMainWindow.Qt ocultar minimizar, maximizar y cerrar botones

+1

Podría mencionar por qué tiene que hacer eso? –

+0

No quiero que el usuario cierre mi aplicación presionando x en la esquina. quiero que haga algunos procesos antes de la operación de abandono. – ufukgun

Respuesta

2

¡Mira cómo funciona Window Flags Example!

+1

gracias u mosg. en realidad mi principal problema es ocultar el botón de cerrar en mainWindow. – ufukgun

14

Fije los indicadores esta ventana Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint

Tenga en cuenta, que en algunas plataformas se comporta de manera diferente. Por ejemplo en Mac OS X deshabilita, (no cueros) Ocultar/minimizar/maximizar botones

2

Esto puede ser conseguida por medio del uso de un EventFilter en el QEvent :: Cerca evento desde su MainWindow

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

Si están usando Qt QML a continuación, para eliminar minimizar, maximizar y botón de cierre, establecer el indicador de ventana sin marco en la función de ventana en su archivo main.qml, como a continuación:

flags: Qt.FramelessWindowHint 
0

banderas: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint

Esto también funciona para un elemento de la ventana

banderas: Qt.Window | Qt.WindowTitleHint

+0

Basado en esos nombres, no creo que esas sean las banderas correctas para esto ... ¿Es por eso que el OP tuvo problemas para encontrarlo? – Taegost

Cuestiones relacionadas