Рубрики
Без рубрики

Контекстные менеджеры WXPYPHON

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

WXPYPHON Toolkit добавил контекстные менеджеры на свой код в нескольких годах назад, но по какой-то причине вы не видите очень много примеров их использования. В этой статье мы посмотрим на три примера контекстных менеджеров в Wxpython. Пользователь WXPYPHON был первым человеком, который предложил использовать контекстные менеджеры в Wxpython на Wxpython Список рассылки Отказ Мы начнем, прокатив наш собственный менеджер контекста, а затем посмотрите на пару примеров встроенных контекстных менеджеров в WxPython.

Создание собственного менеджера контекста WXPYPHON

Создание собственного контекстно-менеджера в Wxpython довольно легко. Мы будем использовать wx.filedialog Для нашего примера контекстно-менеджера.

В этом примере мы подкласс wx.filedialog И все, что мы делаем, это переопределить __enter__ и __exit__ методы. Это превратит наш экземпляр FileDialog в контекстный менеджер, когда мы назовем его с помощью Pythons с утверждение. Вы можете увидеть это в Onopenfile Обработчик событий внутри MyPanel класс. Теперь давайте посмотрим и посмотрим на некоторые из встроенных примеров WXPYPHON!

Контекстные менеджеры Wxpython

Пакет WXPYPHON поддерживает контекстные менеджеры во всем, что подклассы wx.dialog а также следующие виджеты:

  • wx.busyinfo
  • wx.busycursor
  • wx.windowdisabler
  • wx.lognull
  • wx.dctextcolourchanger
  • wx.dcpenchanger
  • wx.dcbrushchanger
  • wx.dcclipper
  • wx.freeze/wx.thaw

Возможно, есть больше виджетов, но это был единственный список, который я мог найти на момент написания. Давайте посмотрим на пару примеры:

В приведенном выше коде мы имеем два примера контекста WXPYPHON. Первый в Onopencolordialog обработчик события. Здесь мы создаем экземпляр wx.colourdialog А затем возьмите выбранный цвет, если пользователь нажимает кнопку OK. Вторым примером является лишь немного более сложным в том, что он скрывает кадру перед отображением экземпляра Busininfo. Честно говоря, я думаю, что этот пример может быть немного улучшен, поместив кадр прячусь и покажу в сам менеджер контекста, но покинут это как упражнение для читателя, чтобы попробовать.

Упаковка

Контекстные менеджеры Wxpython довольно удобны, и они весело использовать. Я надеюсь, что вы найдете себя, используя их в своем собственном коде в ближайшее время. Будьте уверены и попробуйте некоторые из других контекстных менеджеров в WxPython, чтобы посмотреть, могут ли они подойдны ли они вашу кодовую базу или просто чтобы сделать ваш код немного очистителем.