На этом шаге мы рассмотрим программную реализацию указанных операций.
В заголовке окна расположены кнопки Свернуть и Развернуть, с помощью которых можно свернуть окно в значок на панели задач или развернуть его на весь экран. Выполнить подобные действия из программы позволяют следующие методы класса QWidget:
window.setWindowState( (window.windowState() & ~(QtCore.Qt.WindowMinimized | QtCore.Qt.WindowMaximized) ) | QtCore.Qt.WindowFullScreen)
Проверить текущий статус окна позволяют следующие методы:
if window.windowState() & QtCore.Qt.WindowFullScreen: print("Полноэкранный режим")
Приведем пример разворачивания и сворачивания окна.
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtWidgets class MyWindow(QtWidgets.QWidget): def __init__(self, parent = None): QtWidgets.QWidget.__init__(self, parent) self.btnMin = QtWidgets.QPushButton("Свернуть") self.btnMax = QtWidgets.QPushButton("Развернуть") self.btnFull = QtWidgets.QPushButton("Полный экран") self.btnNormal = QtWidgets.QPushButton("Нормальный размер") vbox = QtWidgets.QVBoxLayout() vbox.addWidget(self.btnMin) vbox.addWidget(self.btnMax) vbox.addWidget(self.btnFull) vbox.addWidget(self.btnNormal) self.setLayout(vbox) self.btnMin.clicked.connect(self.on_min) self.btnMax.clicked.connect(self.on_max) self.btnFull.clicked.connect(self.on_full) self.btnNormal.clicked.connect(self.on_normal) def on_min(self): self.showMinimized() def on_max(self): self.showMaximized() def on_full(self): self.showFullScreen() def on_normal(self): self.showNormal() if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) window = MyWindow() window.setWindowTitle("Разворачивание и сворачивание окна") window.resize(300, 100) window.show() sys.exit(app.exec_())
Окно приложения изображено на рисунке 1.
Рис.1. Окно приложения
На следующем шаге мы рассмотрим управление прозрачностью окна.