Класс QWidget, как использовать flags тип окна?

Читаю книгу по PyQt, не могу понять, как использовать флаг - flags.

<Объект> = QWidget([parent=<Родитель>][, flags=<Тип окна>])

Ответы (3 шт):

Автор решения: Mafitis

Разобрался, нужно было подключить QtCore.Qt

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


app = QApplication(sys.argv)
window = QWidget(flags=Qt.Dialog)
window.setWindowTitle("Заголовок окна")
# window.setWindowFlags(QtCore.Qt.Dialog)
window.resize(300, 50)
window.show()
sys.exit(app.exec_())
→ Ссылка
Автор решения: S. Nick

QWidget::QWidget(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())

Создает виджет, который является дочерним по отношению к родительскому (parent), с флагами виджета, установленными в f.

Если родительский элемент (parent) имеет значение nullptr, новый виджет становится окном.
Если родителем является другой виджет, этот виджет становится дочерним окном внутри родителя.
Новый виджет удаляется при удалении его родителя.

Аргумент флагов виджета f обычно равен 0, но его можно установить для настройки рамки окна.
Чтобы настроить окно, используйте значение window flags.

Если вы добавляете дочерний виджет к уже видимому виджету, вы должны явно показать дочерний виджет, чтобы сделать его видимым.

Обратите внимание, что версия Qt для X11 может не поддерживать все комбинации флагов стилей во всех системах. Это связано с тем, что в X11 Qt может запрашивать только оконный менеджер, а оконный менеджер может переопределить настройки приложения.
В Windows, Qt может устанавливать любые флаги, которые вы хотите.


enum Qt::WindowType \ flags Qt::WindowFlags

Этот тип перечисления используется для указания различных свойств оконной системы виджета.
Они довольно необычны, но необходимы в некоторых случаях. Некоторые из этих флагов зависят от того, поддерживает ли их основной оконный менеджер.
...

→ Ссылка
Автор решения: CameL

Столкнулся с похожей проблемой в PyQt6, не устанавливался флаг. В итоге решил проблему при помощи установки флага таким способом:

flags=Qt.WindowType.Dialog

Полный код:

from PyQt6 import QtWidgets
from PyQt6.QtCore import Qt
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget(flags=Qt.WindowType.Dialog)
window.setWindowTitle("Зaгoлoвoк окна")
window.resize(300, 50)
window. show ()
sys.exit(app.exec())
→ Ссылка