Python kullanarak bir proje değişkeni nasıl değiştirilir?


10

Kullanıcı tanımlı bir proje değişkeninin değerini (Proje Ayarları | Değişkenler'de el ile düzenlenebilir) Python konsolu kullanarak değiştirmek istiyorum. Ben izini QgsExpressionContextScope sınıfında setVariable () fonksiyonunu ama aslında proje ayarlarında değişkeni değiştirmede başarılı olamadık. Kodum şu ana kadar:

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

Sanırım farklı ifade bağlamlarında kayboluyorum ...

Yanıtlar:


11

QgsExpressionContextUtils'e ( https://qgis.org/api/classQgsExpressionContextUtils.html ) bakın. İhtiyacınız olan yöntem QgsExpressionContextUtils.setProjectVariable, örn.

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

Değişkeni silmeye ne dersiniz? Bunun için bir yöntem bulamadımQgsExpressionContextUtils
— ismailsunni

Bunu yapacak üst düzey bir API yok. Muhtemelen NULLING (NULLING) değişkeninden (None (Hiçbiri) olarak ayarlayarak) kurtulabilirsiniz, ancak eğer değilse, QgsExpressionContextUtils.setProjectVariables ({}) kullanmanız ve tüm lotu sıfırlamanız gerekir. Önce QgsExpressionContextUtils.projectScope () öğesini kontrol etmeniz ve saklamak istediğiniz tüm değişkenlerin bir diksiyonunu oluşturmanız gerekir. İdeal olmaktan uzak - ama QGIS gelişimine katılmak ve
— github'da

Teşekkürler @ndawson, setProjectVariables(preserved_variables)ben C ++ kodunu kontrol ettik ile sıfırlamak için etrafında çalışma ile çalışır , umarım işlevsellik için katkıda bulunabilir.
— ismailsunni

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.