Версия 2.1.0

Quick search

Table Of Contents

Объект Factory

Фабрика может использоваться для автоматической регистрации любого класса или модуля и создания экземпляров классов из него в любом месте вашего проекта. Это реализация шаблона Factory.

Список классов и доступных модулей автоматически генерируется с помощью setup.py.

Пример регистрации класса/модуля:

>>> from kivy.factory import Factory
>>> Factory.register('Widget', module='kivy.uix.widget')
>>> Factory.register('Vector', module='kivy.vector')

Пример использования Factory:

>>> from kivy.factory import Factory
>>> widget = Factory.Widget(pos=(456,456))
>>> vector = Factory.Vector(9, 2)

Пример использования имени класса:

>>> from kivy.factory import Factory
>>> Factory.register('MyWidget', cls=MyWidget)

По умолчанию первое имя класса, которое вы регистрируете с помощью фабрики, остается постоянным. Если вы хотите изменить зарегистрированный класс, вам нужно сначала отменить регистрацию имени класса, прежде чем присвоить его заново:

>>> from kivy.factory import Factory
>>> Factory.register('MyWidget', cls=MyWidget)
>>> widget = Factory.MyWidget()
>>> Factory.unregister('MyWidget')
>>> Factory.register('MyWidget', cls=CustomWidget)
>>> customWidget = Factory.MyWidget()
kivy.factory.Factory: kivy.factory.FactoryBase = <kivy.factory.FactoryBase object>

Экземпляр Factory для создания новых классов

exception kivy.factory.FactoryException[исходный код]

Базовый класс: Exception