Шаг 25.
Библиотека PyQt5.
Управление окном приложения. Указание типа окна
На этом шаге мы перечислим значения, определяющие тип окна .
При использовании класса QWidget окно по умолчанию создается с заголовком, в котором расположены значок, при нажатии на который выводится оконное меню, текст заголовка и кнопки
Свернуть, Развернуть и Закрыть. Указать другой тип создаваемого окна позволяет метод setWindowFiags() или параметр flags в
конструкторе класса QWidget. Обратите внимание, что метод setWindowFiags() должен вызываться перед отображением окна. Формат метода:
setWindowFiags (<Тип окна>)
В параметре <Тип окна> можно указать следующие атрибуты из класса QtCore.Qt:
- Widget - тип по умолчанию для класса QWidget;
- Window - указывает, что компонент является окном, независимо от того, имеет он родителя или нет. Окно выводится с рамкой и заголовком, в котором расположены кнопки
Свернуть, Развернуть и Закрыть. По умолчанию размеры окна можно изменять с помощью мыши;
- Dialog - диалоговое окно. Выводится с рамкой и заголовком, в котором расположены кнопки Справка и Закрыть. Размеры окна можно изменять с
помощью мыши. Это значение по умолчанию для класса QDialog. Пример указания типа для диалогового окна: window.setWindowFlags(QtCore.Qt.Dialog);
- Sheet и Drawer - окна в стиле Apple Macintosh;
- Popup - указывает, что окно представляет собой всплывающее меню. Оно выводится без рамки и заголовка и, кроме того, может отбрасывать тень. Изменить размеры окна
с помощью мыши нельзя;
- Tool - сообщает, что окно представляет собой панель инструментов. Оно выводится с рамкой и заголовком (меньшем по высоте, чем обычное окно), в котором расположена
кнопка Закрыть. Размеры окна можно изменять с помощью мыши;
- ToolTip - указывает, что окно представляет собой всплывающую подсказку. Оно выводится без рамки и заголовка. Изменить размеры окна с помощью мыши нельзя;
- splashScreen - сообщает, что окно представляет собой заставку. Оно выводится без рамки и заголовка. Изменить размеры окна с помощью мыши нельзя. Это значение по
умолчанию для класса QSplashScreen;
- Desktop - указывает, что окно представляет собой рабочий стол. Оно вообще не отображается на экране;
- SubWindow - сообщает, что окно представляет собой дочерний компонент, независимоот того, имеет он родителя или нет. Выводится оно с рамкой и заголовком (меньшим по
высоте, чем у обычного окна), но без кнопок. Изменить размеры окна с помощью мыши нельзя;
- ForeignWindow - указывает, что окно создано другим процессом;
- CoverWindow - окно, представляющее минимизированное приложение на некоторых мобильных платформах.
Определить тип окна из программы позволяет метод windowType().
Для окон верхнего уровня можно через оператор | дополнительно указать следующие атрибуты из класса Qtcore.Qt (здесь перечислены только наиболее часто используемые атрибуты, полный их список ищите в документации):
- MSWindowsFixedSizeDialogHint - запрещает изменение размеров окна. Кнопка Развернуть в заголовке окна становится неактивной;
- FramelessWindowHint - убирает рамку и заголовок окна. Изменять размеры окна и перемещать его нельзя;
- NoDropShadowWindowHint - убирает отбрасываемую окном тень;
- customizeWindowHint - убирает рамку и заголовок окна, но добавляет эффект объемности. Размеры окна можно изменять;
- windowTitieHint - добавляет заголовок окна. Выведем для примера окно фиксированного размера с заголовком, в котором находится только текст:
window.setWindowFlags(QtCore.Qt.Window |
QtCore.Qt.FramelessWindowHint |
QtCore.Qt.WindowTitleHint)
- WindowSуstemMenuHint - добавляет оконное меню и кнопку Закрыть;
- WindowMinimizeButtonHint - добавляет в заголовок кнопку Свернуть;
- WindowMaximizeButtonHint - добавляет в заголовок кнопку Развернуть;
- WindowMinMaxButtonsHint - добавляет в заголовок кнопки Свернуть и Развернуть;
- WindowCloseButtonHint - добавляет кнопку Закрыть;
- WindowContextHelpButtonHint - добавляет кнопку Справка;
- WindowStaysOnTopHint - сообщает системе, что окно всегда должно отображаться поверх всех других окон;
- WindowStaysOnBottomHint - сообщает системе, что окно всегда должно быть расположено позади всех других окон.
Получить все установленные флаги из программы позволяет метод windowFlags().
На следующем шаге мы рассмотрим изменение и получение размеров окна.
Предыдущий шаг
Содержание
Следующий шаг