Автоматическое обновление таблицы атрибутов QGIS для отображения недавно добавленного поля

Я написал плагин QGIS, который отображает указанный пользователем шейп-файл, а затем, когда пользователь выбирает параметр, плагин автоматически добавляет новое поле в шейп-файл, заполняет новое поле данными, а затем отображает копию шейп-файла на основе на данные в новом поле.

Новая копия шейп-файла показывает новое поле в таблице атрибутов, но таблица атрибутов исходной версии не обновляется, поэтому новое поле не отображается.

Есть ли способ «обновить» ссылку на таблицу атрибутов, чтобы она отображала изменения, без необходимости удалять шейп-файл из QGIS, а затем добавлять его снова?

Спасибо


person Bob Smith    schedule 05.06.2015    source источник
comment
Попробуйте myLayer.updateFields() сразу после создания новых полей?   -  person Germán Carrillo    schedule 07.10.2016
comment
Спасибо за ответ @GermánCarrillo - это не сработало, поэтому я переписал свой вопрос, чтобы, надеюсь, сделать его более понятным.   -  person Bob Smith    schedule 05.11.2016
comment
Итак, какой код вы используете для добавления нового поля в шейп-файл? Возможно, это поможет разобраться в проблеме.   -  person Germán Carrillo    schedule 05.11.2016


Ответы (1)


Вы можете перезагрузить их все, используя:

QgsProject.instance().reloadAllLayers()
person Romário Carvalho Neto    schedule 09.04.2021
comment
У меня работало на QGIS 3.10 - person Romário Carvalho Neto; 09.04.2021