Do you know how to hide minimize, maximize and close buttons of title bar in Qt. I especially need to hide it on QMainWindow.
Just watch how Window Flags Example works!
For the close button, you can override the closeEvent() of QmainWindow
class MainWindow(QMainWindow):
def closeEvent(self, event):
event.ignore()
return
Set this window flags Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint
Note, that on some platforms it behaves in different way. For example on Mac OS X it Disables, (not hides) close/minimize/maximize buttons
This can be achived by using an eventFilter on the QEvent::Close event from your 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();
}
If you are using Qt qml then, to remove minimize, maximize and close button, set the frameless window flag in the window function in your main.qml file, like below:
flags: Qt.FramelessWindowHint
flags: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint
this also works for a window item
flags: Qt.Window | Qt.WindowTitleHint