Kак запретить открытие окна во весь экран PyQt5

Рейтинг: 0Ответов: 1Опубликовано: 16.04.2023

Задача в том, чтобы убрать вот эти кнопки

Нужно убрать выделенные кнопки

Ответы

▲ 2Принят

Если нужно создать фиксированное окно, это можно сделать так:

window.setFixedSize(width, height)

Но это позволит лишь не раскрывать окно на весь экран, а вот чтобы его нельзя было сворачивать нужно поработать с флагами:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget
import sys

app = QApplication(sys.argv)
window = QWidget()
window. setFixedSize(500, 300) # задаем фиксированный размер
flags = window.windowFlags()       # получаем все флаги которые есть
flags &= ~Qt.WindowMaximizeButtonHint  # отключаем ненужный нам флаг
window.setWindowFlags(flags)  # присваеваем флаги окну
window.show() 
app.exec()

Возможно вместо фиксированного размера вам нужно просто отключить флагWindowMaximizeButtonHint.

Моя рабочая среда linux поэтому вероятно это особенности X11, что нельзя отключить кнопку минимизации, результат такой:

введите сюда описание изображения

Вообще есть такие флаги (их можно найти в документации):

Qt.MSWindowsFixedSizeDialogHint
Qt.X11BypassWindowManagerHint
Qt.FramelessWindowHint
Qt.WindowTitleHint
Qt.WindowSystemMenuHint
Qt.WindowMinimizeButtonHint
Qt.WindowMaximizeButtonHint
Qt.WindowCloseButtonHint
Qt.WindowContextHelpButtonHint
Qt.WindowShadeButtonHint
Qt.WindowStaysOnTopHint
Qt.WindowStaysOnBottomHint
Qt.CustomizeWindowHint

Для того чтобы не путаться в флагах Вы можете обратится к этому исходнику

Запустив его у Вас будет не только удобная работа с флагами, но и возможность их скопировать в свой код.

введите сюда описание изображения