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()])