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

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


products:pussy:api:pyub:types:propertycontainer

Это старая версия документа!


PropertyContainer

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

Подробности смотрите в статье propertycontainer

Применение

Экземпляры Свойств записываются в теле класса как аннотации, объявление данного класса выглядит следующим образом:

class <Имя класса>(PropertyContainer):
    <имя свойства 1>:<Класс свойства>(<параметры>)
    <имя свойства 2>:<Класс свойства>(<параметры>)
    ...

Указанные в теле класса Свойства будут сохранены в атрибуте _ _annotations_ _.

Получить значения свойств можно несколькими способами:

  1. использовать спициальный метод класса get_property_value(), ему нужно передать фактическое имя свойства;
  2. создать экземпляр класса контейнера и обратиться к нему как к обычному атрибуту (например, <экзмпляр класса>.<имя свойства>

Получить ссылку на свойство поможет свойства get_property(), ему нужно передать фактическое имя свойства. Это нужно для того, чтобы, например, изменить параметры свойства во время исполнения, их имена начинаются на p_. Чтобы сохранить параметры на жестком диске нужно воспользоваться соответствующим методом у класса UBHelper.

Методы:

__getattr__()

Переопределение магического метода. Производит поиск свойства в контейнере и возвращает его значение, если свойство не найдено, возбуждает исключение AttributeError .

def __getattr__(self, item) -> Any

Параметры:

  • item(str)-имя свойства

Возвращает:

  • Any - значение свойства

Методы класса:

render_layout()

Возвращает интерфейс для редактирования настроек, Менеджер вызывает этот метод и полученный виджет встраивает в соответствующее диалоговое окно. По умолчанию свойства выводятся единым списком. Переопределите этот метод, если нужен определенный вид интерфейса.

def render_layout(cls) -> QWidget

Возвращает:

  • QWidget- интерфейс ввода настроек

retranslate()

Менеджер вызывает этот метод, когда пользователь изменяет язык интерфейса. Если вы переопредели метод render_layout(), то возможно будет необходимо переопределить и этот.

В данной версии функциональность интернационализации не реализована в полной мере.

def retranslate(self) -> None:

Возвращает:

  • None

get_property()

Возвращает ссылку на свойство с указанным именем.

def get_property(cls, name: str) -> AbstractProperty

Параметры:

  • name - имя свойства

Возвращает:

get_property_value()

Возвращает значение свойства с указанным именем.

def get_property_value(cls, name: str) -> Any

Параметры:

  • name - имя свойства

Возвращает:

  • Any - значение свойства

update_data()

Извлекает данные из виджетов, которые привязаны к свойствам. Вызывает метод extract_widget_data() у каждого свойства. Возвращает True, если хотя бы одно свойство было изменено, иначе - False.

def update_data(cls) -> bool:

Возвращает:

  • bool - результат обновления данных

propvalues_to_dict()

Возвращает словарь со значениями свойств. В качестве ключа используется строка с именем свойства, в значении - кортеж вида: (<класс свойства>, <значение свойства>).

def propvalues_to_dict(cls) -> dict[str, (AbstractProperty, Any)]

Возвращает:

prop_params_to_dict()

Возвращает словарь с параметрами свойств. В качестве ключа используется строка с именем свойства, в значении - кортеж вида: (<класс свойства>, <словарь со значениями параметров>). Словарь со значениями возвращается свойствами при помощи метода get_parameters_dict().

def prop_params_to_dict(cls) -> dict[str, (AbstractProperty, dict)]

Возвращает:

  • dict[str, (AbstractProperty, dict)]- словарь параметрами свойств

set_prop_params_from_dict()

Принимает словарь с параметрами свойств и устанавливает их для свойств в контейнере. В качестве ключа используется строка с именем свойства, в значении - кортеж вида: (<класс свойства>, <словарь со значениями параметров>).

def set_prop_params_from_dict(cls, params_dict: dict[str, (AbstractProperty, dict)]) -> None

Параметры:

  • params_dict(dict[str, (AbstractProperty, dict)]) - словарь с параметрами свойств

Возвращает:

  • None

set_propvalues_from_dict()

Принимает словарь со значениями свойств. В качестве ключа используется строка с именем свойства, в значении - кортеж вида: (<класс свойства>, <значение свойства>). Перед присвоением проверяет тип и значение свойства на соответствие, установленным по умолчанию.

def set_prop_params_from_dict(cls, params_dict: dict[str, (AbstractProperty, dict)]) -> None

Параметры:

  • dict[str, (AbstractProperty, dict)]- словарь со значениями свойств

Возвращает:

  • None
products/pussy/api/pyub/types/propertycontainer.1701006134.txt.gz · Последнее изменение: (внешнее изменение)