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

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

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

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

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

Итоги

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