Не удаётся добавить новое поле (pyQGIS)

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Не удаётся добавить новое поле (pyQGIS)

Сообщение SS_Rebelious » 09 сен 2012, 22:51

В консоли QGIS делаю всё по инструкции:

Код: Выделить всё

layer = qgis.utils.iface.activeLayer()
caps = layer.dataProvider().capabilities()
if caps & QgsVectorDataProvider.AddAttributes:
res = layer.dataProvider().addAttributes( [ QgsField("mytext", QVariant.String), QgsField("myint", QVariant.Int) ] )

Получаю ошибку:

Код: Выделить всё

Traceback (most recent call last):
  File "<input>", line 2, in <module>
NameError: name 'QVariant' is not defined
В чём может быть проблема?
Последний раз редактировалось SS_Rebelious 10 сен 2012, 21:30, всего редактировалось 1 раз.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Не удаётся добавить новое поле (pyQGIS)

Сообщение yellow-sky » 10 сен 2012, 08:38

Код: Выделить всё

from PyQt4.QtCore import QVariant

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Не удаётся добавить новое поле (pyQGIS)

Сообщение SS_Rebelious » 10 сен 2012, 19:03

Спасибо!

И ещё вопрос вдогонку. Как правильно записывать параметры нового поля, если я хочу задать их вручную? Например, я пытаюсь делать так: QgsField("real", QVariant.Double, double, 10, 3) - не получается.

И совсем вдогонку ещё вопрос. Почему используется такая странная запись функции создания нового поля: 'if caps &...: res = ..."
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Не удаётся добавить новое поле (pyQGIS)

Сообщение Voltron » 10 сен 2012, 21:25

SS_Rebelious писал(а):Как правильно записывать параметры нового поля, если я хочу задать их вручную?

Код: Выделить всё

f = QgsField("fieldName", QVariant.Double, "", 20, 15)
SS_Rebelious писал(а):Почему используется такая странная запись функции создания нового поля: 'if caps &...: res = ..."
Проверка возможности выполнить действие и успешность этого действия.

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Не удаётся добавить новое поле (pyQGIS)

Сообщение SS_Rebelious » 10 сен 2012, 21:29

Да, кавычки надо не забывать ставить))) Спасибо!
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 3 гостя