Как создать Fade-in рамку/диалог — wxPython #25

автор

Microsoft Outlook и ряд других программ имеют аккуратный небольшой визуальный прием, суть которого состоит в том, что отображается статусный диалог, который медленно появляется, застывает, а потом медленно затухает и исчезает. Набор инструментов wxPython позволяет быстро и просто реализовать данную возможность в вашем приложении, изменяя альфа-прозрачность любого виджета топ-уровня. Все виджеты, которые будут подчинены ему также унаследуют такую прозрачность, так что пропадать и появляется будет не только фон вашего приложения.

В данном примере я буду использовать объект рамки как объект топ-уровня, а также таймер, который будет менять альфа-прозрачность в течении 5 секунд. Хэндлер событий рамки заставит её содержимое затухать, исчезнуть и появится снова. Диапазон значений колеблется от 0 до 255, где 0 – полностью прозрачный, а 255 – полностью непрозрачный.

Как вы видите, всё, что нужно сделать для изменения прозрачности виджета топ-уровня, это вызвать метод SetTransparent() и задать в нём необходимые значения. Я сам использовал этот метод в некоторых моих прошлых приложениях, когда мне нужно было установить затухающее оповещение – например, вывести окно, сообщающее о новом письме, которое пропадало через несколько секунд.

Итоги

Если вы ещё не используете рекомендации из этой статьи в своих приложениях, применяйте его всегда, когда нужно будет отображать конечному пользователю поп-ап сообщение. В wx.lib.agw также имеется виджет ToasterBox. Это обычный виджет, который был полностью написан на Python, в котором есть масса удобных встроенных возможностей, благодаря которым вам не придётся придумывать то, что сделал я. Вам следует его заценить!

Вам может быть интересно

Scroll Up