Инструменты пользователя

Инструменты сайта


products:pussy:concepts:propertycontainer

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:pussy:concepts:propertycontainer [2023/11/20 15:59] ironmeshproducts:pussy:concepts:propertycontainer [2023/12/13 14:54] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 ====== Контейнер свойств ====== ====== Контейнер свойств ======
-FIXME+ 
 +Контейнер свойств - это вспомогательный компонент, который служит хранилищем для [[:products:pussy:concepts:property|Свойств]], обеспечивает простой интерфейс для манипуляции ими. В составе [[:products:pussy:concepts:plugin|Плагинов]] используется для хранения пользоватьских настроек. Контейнер свойств позволяет производить такие операции как: 
 + 
 +  * получение графического интерфейса (формы) для редактирования значений свойств в контейнере; 
 +  * извлечение/установка значений и параметров; 
 +  * получать доступ к определенному свойству и его значению; 
 +  * перевод всех отображаемых данных свойств на другие языки. 
 + 
 +<WRAP center round tip 60%> 
 + 
 +Дополнительную информацию читайте в материалах: [[:products:pussy:api:pyub:types:properties:main|]], [[:products:pussy:api:pyub:types:propertycontainer|]], [[:products:pussy:other:dev_propertycontainer_gui|]] 
 + 
 +</WRAP> 
 + 
 + 
 +===== Применение ===== 
 + 
 +Первым дело нужно создать класс-потомок [[:products:pussy:api:pyub:types:propertycontainer|PropertyContainer, ]]экземпляры Свойств записываются в теле класса как аннотации, объявление данного класса выглядит следующим образом: 
 + 
 +<code python> 
 +class <Имя класса>(PropertyContainer): 
 +    <имя свойства 1>:<Класс свойства>(<параметры>
 +    <имя свойства 2>:<Класс свойства>(<параметры>
 +    ... 
 + 
 +</code> 
 + 
 +Указанные в теле класса Свойства будут сохранены в атрибуте //_ _annotations_ _ //, но знать об этом в принципе не обязательно,  так как для работы есть все необходимые методы. 
 + 
 +Получить значения свойств можно несколькими способами: 
 + 
 +  - использовать специальный метод класса  //[[http://wiki.mig-ironmesh.ru/products;pussy;api;pyub;types;propertycontainer#get_property_value|get_property_value()]]//, ему нужно передать фактическое имя свойства; 
 +  - создать экземпляр класса контейнера и обратиться к значению свойства как к обычному атрибуту (например, <экземпляр класса>.<имя свойства>). 
 + 
 +Получить ссылку на свойство поможет метод  //[[http://wiki.mig-ironmesh.ru/products;pussy;api;pyub;types;propertycontainer#get_property|get_property()]]// , ему нужно передать фактическое имя свойства. Это нужно для того, чтобы, например, изменить параметры свойства во время исполнения, их имена начинаются на **p_. **  Чтобы сохранить параметры на жестком диске нужно воспользоваться соответствующим методом у класса **[[:products:pussy:api:pyub:types:ubhelper|]]**, это работает если Контейнер свойств используется для хранения пользовательских настроек в составе Плагина. 
 + 
 +Выше описана работа с составе Плагина, большинство методов, которые имеются используются Менеджером автоматически в зависимости от контекста. Конечно, можно найти Свойствам в составе контейнера и другие применения,например, для создания форм для ввода данных. Чтобы узнать больше о реализации читайте [[:products:pussy:api:pyub:main|Справочник API]] 
 + 
products/pussy/concepts/propertycontainer.1700485146.txt.gz · Последнее изменение: (внешнее изменение)