Шаг 57.
Библиотека PyQt5. Обработка сигналов и событий. События окна. Изменение положения и размеров окна
На этом шаге мы рассмотрим методы, используемые для выполнения указанных операций.
При перемещении и изменении размеров окна вызываются следующие методы:
- moveEvent (self, <event>) - непрерывно вызывается при перемещении окна. Через параметр <event> доступен экземпляр класса QMoveEvent. Получить
координаты окна позволяют следующие методы этого класса:
- pos () - возвращает экземпляр класса QPoint с текущими координатами;
- oldPos () - возвращает экземпляр класса QPoint с предыдущими координатами;
- resizeEvent (self, <event>) - непрерывно вызывается при изменении размеров окна. Через параметр <event> доступен
экземпляр класса QResizeEvent. Получить размеры окна позволяют следующие методы этого класса:
- size () - возвращает экземпляр класса QSize с текущими размерами;
- oldSize () - возвращает экземпляр класса QSize с предыдущими размерами.
Приведем пример обработки изменения положения окна и его размера.
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__ (self, parent = None):
QtWidgets.QWidget.__init__(self, parent)
self.resize(300, 100)
def moveEvent(self, e):
print ("x = {0}; y = {1}".format (e.pos().x(), e.pos().y()))
QtWidgets.QWidget.moveEvent(self, e) # Отправляем дальше
def resizeEvent(self, e):
print("w = {0}; h= {1}".format(e.size().width(),
e.size().height()))
QtWidgets.QWidget.resizeEvent(self, e) # Отправляем дальше
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять
здесь.
Результат работы приложения изображен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим перерисовку окна или его части.
Предыдущий шаг
Содержание
Следующий шаг