Автор оригинала: Mike Driscoll.
Сегодня мы собираемся перейти, как сделать ваше приложение сделать «исчезнуть». Одно обычное место, где пользователи Windows видят, что это уведомление по электронной почте Microsoft Outlook. Он исчезает, а затем обратно. WXPYPHON обеспечивает способ установить альфа-прозрачность любого верхнего окна, что влияет на виджеты, которые помещаются на виджете верхнего уровня.
В этом примере я буду использовать объект кадра в качестве объекта верхнего уровня и таймер для изменения альфа-прозрачности на единицу 5 каждую секунду. Обработчик событий таймера приведет к тому, что кадра выцветает в поле зрения, а затем снова обратно. Диапазон значений составляет 0 – 255 с 0 полностью прозрачным, а 255 являются полностью непрозрачными.
Код ниже:
import wx class Fader(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title='Test') self.amount = 5 self.delta = 5 panel = wx.Panel(self, wx.ID_ANY) self.SetTransparent(self.amount) ## ------- Fader Timer -------- ## self.timer = wx.Timer(self, wx.ID_ANY) self.timer.Start(60) self.Bind(wx.EVT_TIMER, self.AlphaCycle) ## ---------------------------- ## def AlphaCycle(self, evt): self.amount += self.delta if self.amount >= 255: self.delta = -self.delta self.amount = 255 if self.amount <= 0: self.amount = 0 self.SetTransparent(self.amount) if __name__ == '__main__': app = wx.App(False) frm = Fader() frm.Show() app.MainLoop()
Как видите, все, что вам нужно сделать, чтобы изменить прозрачность виджета верхнего уровня, заключается в том, чтобы вызвать метод SetTransParent () этого виджета и пропустите его набор. Я на самом деле использую этот метод в приложении, который угасает в диалоговом окне, чтобы предупредить меня на новую почту в моей учетной записи электронной почты Zimbra.
Для получения дополнительной информации о проверке следующих ресурсов:
Код проверяется на следующем:
ОС: Windows XP Python: 2.5.2 WxPython: 2.8.8.1 и 2.8.9.1