Класс QWidget, как использовать flags тип окна?
Читаю книгу по PyQt, не могу понять, как использовать флаг - flags.
<Объект> = QWidget([parent=<Родитель>][, flags=<Тип окна>])
Ответы (3 шт):
Разобрался, нужно было подключить 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_())
QWidget::QWidget(QWidget *
parent=nullptr, Qt::WindowFlagsf=Qt::WindowFlags())Создает виджет, который является дочерним по отношению к родительскому (
parent), с флагами виджета, установленными вf.Если родительский элемент (
parent) имеет значениеnullptr, новый виджет становится окном.
Если родителем является другой виджет, этот виджет становится дочерним окном внутри родителя.
Новый виджет удаляется при удалении его родителя.Аргумент флагов виджета
fобычно равен0, но его можно установить для настройки рамки окна.
Чтобы настроить окно, используйте значение window flags.Если вы добавляете дочерний виджет к уже видимому виджету, вы должны явно показать дочерний виджет, чтобы сделать его видимым.
Обратите внимание, что версия Qt для
X11может не поддерживать все комбинации флагов стилей во всех системах. Это связано с тем, что вX11Qt может запрашивать только оконный менеджер, а оконный менеджер может переопределить настройки приложения.
В Windows, Qt может устанавливать любые флаги, которые вы хотите.
enum Qt::WindowType \ flags Qt::WindowFlags
Этот тип перечисления используется для указания различных свойств оконной системы виджета.
Они довольно необычны, но необходимы в некоторых случаях. Некоторые из этих флагов зависят от того, поддерживает ли их основной оконный менеджер.
...
Столкнулся с похожей проблемой в 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())