Сбрасываем цвет фона — wxPython #5

Иногда вам нужно сменить цвет фона виджета панели или какого-то другого виджета интерфейса из набора инструментов wxPython. Это очень полезно для того, чтобы сделать сообщения об ошибках более заметными или чтобы отличать статусы в вашем приложении. Но вот процесс возвращения прежнего цвета уже не так очевиден. Когда я впервые хотел сбросить фоновый цвет панели, я думал, что вот этот код отлично для этого подойдёт:

К сожалению, работает это не всегда. Вместо него, Робин Дан (создатель wxPython) посоветовал использовать wx.NullColor. Согласно словам мистера Дана, причина в том, что wx.NullColor сообщит wx, что у виджета не установлен определённый цвет и он будет использовать тот цвет, который ему предлагает платформа, а в определённой системной теме, в свою очередь, может не оказаться подходящего цвета.

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

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

Telegram Чат & Канал

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

Паблик VK

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

Это немного отличается от использования цвета заданного настройками системы, так как в этом случае wx ведёт себя так, будто определённый цвет уже был задан и его не волнует, если этот цвет окажется таким же, как и системный.

Давайте примем эту информацию во внимание и напишем простой скрипт, который демонстрирует изменение цвета фона объекта Panel, а затем сбрасывает его, сменяя на стандартный серый. Мы также сменим цвет фона TextCtrl и сбросим его, просто, чтобы довести дело до конца.

В этом коде вы можете заметить, что я задал изначальным цветом фона жёлтый и дал пользователю возможность сменять цвет фона с помощью кнопочного хендлера. Также пользователь может сбросить цвет фона обеих виджетов с помощью кнопки «Reset».

Вот изображения «до» и «после»

Сбрасываем цвет фона - wxPython #5

До сброса

Сбрасываем цвет фона - wxPython #5

После сброса

Итоги

Сейчас вы знаете как сбросить цвет стандартных виджетов wxPython. Это знание крайне полезно в некоторых случаях, но назвать его тем, что пригодится вам в ежедневной практике не поворачивается язык. Как бы то ни было, данные знания точно не будут лишними.

Продолжение

Следующий урок №6: Как создать «тёмный режим»?

Предыдущий урок №4: Как поставить фоновое изображение на приложение