Qt скрыть кнопки сворачивания, разворачивания и закрытия
Знаете ли вы, как скрыть кнопки сворачивания, разворачивания и закрытия строки заголовка в Qt. Мне особенно нужно скрыть это на QMainWindow.
5 ответов
Установите флаги этого окна Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint
Обратите внимание, что на некоторых платформах он ведет себя по-разному. Например, в Mac OS X он отключает (не скрывает) кнопки закрытия / сворачивания / разворачивания
Если вы используете Qt qml, тогда, чтобы удалить кнопку минимизации, максимизации и закрытия, установите флаг безрамного окна в оконной функции в вашем файле main.qml, как показано ниже:
flags: Qt.FramelessWindowHint
Это может быть достигнуто с помощью 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();
}
Для кнопки закрытия вы можете переопределить closeEvent() QmainWindow
class MainWindow(QMainWindow):
def closeEvent(self, event):
event.ignore()
return
Флаги: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint
это также работает для элемента окна
флаги: Qt.Window | Qt.WindowTitleHint