На этом шаге мы рассмотрим алгоритм создания окна и некоторые свойства и методы, управляющие его отображением.
Самый простой способ создать пустое окно показан ниже.
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() # Создаем окно window.setWindowTitle("Заголовок окна") # Указываем заголовок window.resize(300, 50) # Минимальные размеры window.show() # Отображаем окно sys.exit(app.exec_())
Конструктор класса QWidget имеет следующий формат:
<Объект> = QWidget ( [parent = <Родитель>] [, flags = <Тип окна>] )
В параметре parent указывается ссылка на родительский компонент. Если параметр не указан или имеет значение None, компонент будет обладать своим собственным окном. Если в параметре flags указан тип окна, то компонент, имея родителя, также будет обладать своим собственным окном, но окажется привязан к родителю. Это позволяет, например, создать модальное окно, которое станет блокировать только окно родителя, а не все окна приложения. Какие именно значения можно указать в параметре flags, мы рассмотрим на следующем шаге.
Указать ссылку на родительский компонент и, возможно, тип окна уже после создания объекта позволяет метод setParent(). Формат метода:
setParent (<Родитель>[, <Тип окна>])
Получить ссылку на родительский компонент можно с помощью метода parentWidget(). Если компонент не имеет родителя, возвращается значение None.
Для изменения текста в заголовке окна предназначен метод setWindowTitle(). Формат метода:
setWindowTitle (<Текст, отображаемый в заголовке>)
Метод windowTitle() позволяет получить текст, выводящийся в заголовке окна.
После создания окна необходимо вызвать метод show(), чтобы вывести окно на экран. Для скрытия окна предназначен метод hide(). Для отображения и скрытия компонентов можно также пользоваться методом setVislble(<Флаг>). Если параметром этого метода передано значение True, то компонент будет отображен, а если значение False, то скрыт. Пример отображения окна:
window.setVisible(True)
Проверить, видим компонент в настоящее время или нет, позволяет метод isVisible(), который возвращает True, если компонент видим, и False - в противном случае. Кроме того, можно воспользоваться методом isHidden() - он возвращает True, если компонент скрыт, и False - в противном случае.
На следующем шаге мы рассмотрим указание типа окна.