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

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


products:pussy:concepts:propertycontainer

Различия

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

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

Следующая версия
Предыдущая версия
products:pussy:concepts:propertycontainer [2023/11/14 18:30] – создано ironmeshproducts:pussy:concepts:propertycontainer [2023/12/13 14:54] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 ====== Контейнер свойств ====== ====== Контейнер свойств ======
 +
 +Контейнер свойств - это вспомогательный компонент, который служит хранилищем для [[: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.1699975853.txt.gz · Последнее изменение: (внешнее изменение)