На этом шаге мы рассмотрим методы, используемые для выполнения указанных операций.
Когда компонент (или часть компонента) становится видимым, требуется выполнить его перерисовку. В этом случае вызывается метод с названием paintEvent (self, <event>). Через параметр <event> доступен экземпляр класса QPaintEvent, который поддерживает следующие методы:
С помощью этих методов можно получить координаты области, которая, например, была ранее перекрыта другим окном и теперь вновь оказалась в зоне видимости. Перерисовывая только область, а не весь компонент, можно заметно повысить быстродействие приложения. Следует также заметить, что в целях эффективности последовательность событий перерисовки может быть объединена в одно событие с обшей областью перерисовки.
В некоторых случаях перерисовку окна необходимо выполнить вне зависимости от внешних действии системы или пользователя - например, при изменении каких-либо значений требуется обновить график. Вызвать событие перерисовки компонента позволяют следующие методы класса QWidget:
repaint () repaint (<X>, <Y>, <Ширина>, <Высота>) repaint (<QRect>) repaint (<QRegion>)
Первый формат вызова выполняет перерисовку всего компонента, а остальные - только области с указанными координатами;
update () update (<X>, <Y>, <Ширина>, <Высота>) update (<QRect>) update (<QRegion>)
На следующем шаге мы рассмотрим предотвращение закрытия окна.