Qt скрыть кнопки сворачивания, разворачивания и закрытия - PullRequest
11 голосов
/ 09 июля 2010

Знаете ли вы, как скрыть кнопки сворачивания, разворачивания и закрытия строки заголовка в Qt. Особенно мне нужно скрыть это в QMainWindow.

Ответы [ 5 ]

19 голосов
/ 10 июля 2010

Установить это окно флажков Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint

Обратите внимание, что на некоторых платформах он ведет себя по-разному. Например, в Mac OS X он отключает (не скрывает) кнопки закрытия / сворачивания / разворачивания

5 голосов
/ 27 апреля 2017

Если вы используете Qt qml, тогда, чтобы удалить кнопку минимизации, максимизации и закрытия, установите флажок окна без рамки в оконной функции в вашем файле main.qml, как показано ниже:

flags: Qt.FramelessWindowHint
2 голосов
/ 16 августа 2011

Этого можно достичь, используя eventFilter для события QEvent :: Close из вашего 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();
}
2 голосов
/ 09 июля 2010

Просто посмотрите, как работает Пример оконных флагов !

0 голосов
/ 28 ноября 2017

flags: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint

Это также работает для элемента окна

flags: Qt.Window | Qt.WindowTitleHint

...