SelectionManager - Доступ к выделенным объектам
- class axipy.SelectionManager
Класс доступа к выделенным объектам.
Примечание
Создание
axipy.SelectionManagerне требуется, используйте объектaxipy.selection_manager.Свойства:
Размер выделения, то есть количество выделенных записей (количество элементов в списке идентификаторов).
Список идентификаторов выделенных записей.
Таблица, являющаяся источником текущего выделения.
Методы:
add(table, ids)Добавляет выборку записи таблицы по их идентификаторам.
clear()Очищает выборку.
Возвращает выборку в виде итератора по записям.
Возвращает выборку в виде таблицы.
remove(table, ids)Удаляет из выборки записи таблицы по их идентификаторам.
set(table, ids)Создает выборку из записей таблицы по их идентификаторам.
set_all(table)Создает выборку по всем записям таблицы.
Сигналы:
Выделение было изменено.
Специальные методы:
__len__()Длина объекта (функция
len()).- add(table: Table, ids: Union[List[int], int])
Добавляет выборку записи таблицы по их идентификаторам.
- Параметры:
table – Таблица.
ids – Идентификаторы записей.
Пример установки выборки из запроса:
qry = data_manager.query('select * from world where Столица like "М%"') for feature in qry.items(): selection_manager.add(qry, feature.id)
- clear()
Очищает выборку.
- property count: int
Размер выделения, то есть количество выделенных записей (количество элементов в списке идентификаторов).
- get_as_cursor() Iterator[Feature]
Возвращает выборку в виде итератора по записям.
Пример:
for f in selection_manager.get_as_cursor(): print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
Предупреждение
Не рекомендуется, начиная с версии 3.5: Используйте
axipy.DataManager.selection.
- get_as_table() Optional[Table]
Возвращает выборку в виде таблицы.
- Результат:
Таблица или
None, если выборки нет.
Содержимое таблицы основывается на текущей выборке на момент вызова данного метода. При последующем изменении или сбросе выборки контент данной таблицы не меняется. Результирующей таблице присваивается наименование в формате data*, которое в последствии можно изменить. При закрытии базовой таблицы данная таблицы так-же закрывается.
Пример:
# Получаем таблицу из выборки. tbl = selection_manager.get_as_table() # Задаем желаемое имя таблицы (необязательно) tbl.name = 'my_table' # Регистрация в каталоге (необязательно) app.mainwindow.catalog().add(tbl) for f in tbl.items(): print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
Предупреждение
Не рекомендуется, начиная с версии 3.5: Используйте
axipy.DataManager.selection.
- remove(table: Table, ids: Union[List[int], int])
Удаляет из выборки записи таблицы по их идентификаторам.
- Параметры:
table – Таблица.
ids – Идентификаторы записей.
- set(table: Table, ids: Union[List[int], int])
Создает выборку из записей таблицы по их идентификаторам.
- Параметры:
table – Таблица.
ids – Идентификаторы записей.
Пример выбора всех объектов слоя:
table = data_manager.find('world') if table: selection_manager.set(table, [f.id for f in table.items()])