파이썬을 사용하여 프로젝트 변수를 변경하는 방법?


10

파이썬 콘솔을 사용하여 사용자 정의 프로젝트 변수의 값을 변경하고 싶습니다 (프로젝트 설정 | 변수에서 수동으로 편집 가능). QgsExpressionContextScope 클래스에서 setVariable () 함수를 추적 했지만 실제로 프로젝트 설정에서 변수를 변경하는 데 성공하지 못했습니다. 지금까지 내 코드 :

iface.mapCanvas().mapSettings().expressionContext().scope(0).setVariable('myvar',1)

다른 표현 상황에서 길을 잃은 것 같습니다 ...

답변:


11

QgsExpressionContextUtils ( https://qgis.org/api/classQgsExpressionContextUtils.html )를보십시오. 필요한 방법은 QgsExpressionContextUtils.setProjectVariable입니다. 예 :

QgsExpressionContextUtils.setProjectVariable('myvar','hello world')

변수 삭제는 어떻습니까? 나는 그것을위한 방법을 찾지 못했다QgsExpressionContextUtils
ismailsunni

이를 수행하기위한 고급 API는 없습니다. 아마도 변수를 NULL로 설정하여 (없음으로 설정) 벗어날 수는 있지만 QgsExpressionContextUtils.setProjectVariables ({})를 사용하고 전체 로트를 재설정해야합니다. 먼저 QgsExpressionContextUtils.projectScope ()를 확인하고 유지하려는 모든 변수의 dict를 작성해야합니다. 이상적이지는 않지만 QGIS 개발에 참여하고 github에 대한 풀 요청을 보내려면 API에 간단한 추가 사항이 될 것입니다.
ndawson

감사합니다 @ ndawson, 그것은 setProjectVariables(preserved_variables)C ++ 코드를 확인한 후에 재설정하기 위해 귀하의 작업과 함께 작동 합니다. 기능에 기여할 수 있기를 바랍니다.
ismailsunni

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.