StyleCatalogService ===================== .. currentmodule:: axioma.render .. class:: StyleCatalogService Служба каталогов стилей оформления векторных графичекких объектов. Служит для оперативного изменения каталогов, в которых хранятся стили оформления объектов. Для постоянного запоминания значений с загрузкой в следующих сессиях работы необходимо использовать соответствующие методы класса :class:`~axioma.render.RenderSettingsManager`. Первоначально при загрузке служба инициализирует значения из настроек, которые были изменены посредством класса :class:`~axioma.render.RenderSettingsManager` Унаследован от: :class:`~PyQt5.QtCore.QObject` .. py:method:: setBaseCatalog(dir) Задает базовый каталог, в котором должны находиться подкаталоги со стандартными наименованиями Pen, Brush и CustSymb , в которых содержатся файлы с соответствующими стилями :param dir: Базовый каталог, в котором предполагается расположены подкаталоги со стилями :type dir: :class:`~PyQt5.QtCore.QDir` :return: True, если успешно. В противном случае False :rtype: :class:`bool` .. py:method:: resetToDefault() Сброс пользовательских установок и задание каталогов по-умолчанию .. py:method:: setPenCatalog(dirName = None) Смена каталога, в котором содержатся стили линий. Если каталог не по каким-то причинам не установлен, сбрасывается на значение по-умолчанию :class:`~axioma.render.StyleCatalogService.defaultPenDir` :param dirName: Наименование каталога со стилями линий. Если параметр опущен, каталог устанавливается по-умолчанию как в первоначальном варианте поставки :type dirName: :class:`str` :return: True, если каталог существует и он непустой. В противном случае False :rtype: :class:`bool` .. py:method:: penCatalog() Установленный на данный момент каталог со стилями линий. :rtype: :class:`str` .. py:method:: setBrushCatalog(dirName = None) Смена каталога, в котором содержатся стили заливок. Если каталог не по каким-то причинам не установлен, сбрасывается на значение по-умолчанию :class:`~axioma.render.StyleCatalogService.defaultBrushDir` :param dirName: Наименование каталога со стилями заливок. Если параметр опущен, каталог устанавливается по-умолчанию как в первоначальном варианте поставки :type dirName: :class:`str` :return: True, если каталог существует и он непустой. В противном случае False :rtype: :class:`bool` .. py:method:: brushCatalog() Установленный на данный момент каталог со стилями заливок :rtype: :class:`str` .. py:method:: setSymbolCatalog(dirName = None) Смена каталога, в котором содержатся растровые файлы точечных объектов. Если каталог не по каким-то причинам не установлен, сбрасывается на значение по-умолчанию :class:`~axioma.render.StyleCatalogService.defaultSymbolDir` :param dirName: Наименование каталога с растрами точечных объектов. Если параметр опущен, каталог устанавливается по-умолчанию как в первоначальном варианте поставки :type dirName: :class:`str` :return: True, если каталог существует и он непустой. В противном случае False :rtype: :class:`bool` .. py:method:: symbolCatalog() Установленный на данный момент каталог с растровыми файлами точечных объектов :rtype: :class:`str` .. py:method:: defaultPenDir() Каталог по-умолчанию для хранения стилей линий :rtype: :class:`str` .. py:method:: defaultBrushDir() Каталог по-умолчанию для хранения стилей заливок :rtype: :class:`str` .. py:method:: defaultSymbolDir() Каталог по-умолчанию для хранения растровых символов :rtype: :class:`str` .. method:: changed() [signal] Сигнал испускается при смене любого из каталогов со стилями Пример использования: .. code-block:: python from axioma.core.plugin import * import axioma.render # Создаем своё расширение и объявляем в нём службу каталогов для стилей class MyExtension(axioma.core.plugin.Extension): def __init__(self): super().__init__() self.catalogService = self.createDependencyGetter(axioma.render.StyleCatalogService) # Создаем расширение и регистрируем его в системе ext = MyExtension() axioma.app.core.prependExtension(ext) if ext.catalogService is not None: # При смене каталога печатается сообщение ext.catalogService().changed.connect(lambda: print("Каталог сменен")) # Текущее значение каталога с растровыми точечными стилями print('Текущий каталог: {}'.format(ext.catalogService().symbolCatalog())) ext.catalogService().setSymbolCatalog("c:\\work\\style\\CustSymb") print('Новый каталог: {}'.format(ext.catalogService().symbolCatalog())) ext.catalogService().setPenCatalog('c:\\work\\style\\Pen') # Сбрасываем каталог со стилями растровых точечных объектов на значение по-умолчанию ext.catalogService().setSymbolCatalog()