Пользовательский элемент управления wxPython

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

Я новичок в wxPython и пишу свое первое приложение на wxPython.

Кроме того, в чем разница между собственным контролем и полным контролем владельца.


person MA1    schedule 04.03.2010    source источник


Ответы (1)


Добро пожаловать в wxPython! Если вы хотите создать что-то нестандартное, вам нужно создать подкласс базового элемента управления, который вы хотите изменить. Часто это будет wx.Panel, если вы комбинируете несколько вещей, но это также может быть переключатель, флажок и так далее. Ознакомьтесь с http://wiki.wxpython.org/CreatingCustomControls, где это очень подробно объясняется с примерами.

Собственный элемент управления зависит от операционной системы для рисования. Собственный флажок в основном говорит: «Эй, ОС, нарисуй для меня флажок», поэтому он будет выглядеть так, как должен, «нативным» в любой системе, включая слияние с темой. Флажок, нарисованный владельцем, рисуется с помощью пользовательского кода, который часто будет выглядеть одинаково во всех системах. Это дает гораздо больше гибкости в том, как выглядит и ведет себя ваш элемент управления, но достигается за счет собственного внешнего вида и часто не очень хорошо сочетается с доступностью.

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

Если вы загрузите демонстрационное приложение wxPython, вы сможете найти всевозможные примеры нативных, нарисованных владельцем и пользовательских элементов управления. Надеюсь это поможет!

person mrooney    schedule 05.03.2010
comment
Отличный ответ, большое спасибо за разъяснение того, что тот факт, что элемент управления является пользовательским, не означает, что он должен быть нарисован владельцем, в этом я сомневался. - person WhyNotHugo; 06.08.2010