Bu bölüm eklenti geliştirmeyi kolaylaştıran kod parçacıklarını belirtir.
Eklentide ki ekleme initGui()
self.keyAction = QAction("Test Plugin", self.iface.mainWindow())
self.iface.registerMainWindowAction(self.keyAction, "F7") # action1 triggered by F7 key
self.iface.addPluginToMenu("&Test plugins", self.keyAction)
QObject.connect(self.keyAction, SIGNAL("triggered()"),self.keyActionF7)
initGui() ye ekleme
self.iface.unregisterMainWindowAction(self.keyAction)
F7 ye tıklandığında çağırılan metod
def keyActionF7(self):
QMessageBox.information(self.iface.mainWindow(),"Ok", "You pressed F7")
Açıklamadaki katman ağacına doğrudan erişime izin veren yeni ağaç katmanı API si QGIS 2.4 ten beri mevcuttur. Aktif katmanın görünürlüğünün nasıl açılıp kapatılacağına dair bir örnek buradadır.
root = QgsProject.instance().layerTreeRoot()
node = root.findLayer(iface.activeLayer().id())
new_state = Qt.Checked if node.isVisible() == Qt.Unchecked else Qt.Unchecked
node.setVisible(new_state)
def changeValue(self, value):
layer = self.iface.activeLayer()
if(layer):
nF = layer.selectedFeatureCount()
if (nF > 0):
layer.startEditing()
ob = layer.selectedFeaturesIds()
b = QVariant(value)
if (nF > 1):
for i in ob:
layer.changeAttributeValue(int(i), 1, b) # 1 being the second column
else:
layer.changeAttributeValue(int(ob[0]), 1, b) # 1 being the second column
layer.commitChanges()
else:
QMessageBox.critical(self.iface.mainWindow(), "Error",
"Please select at least one feature from current layer")
else:
QMessageBox.critical(self.iface.mainWindow(), "Error", "Please select a layer")
Metot tek bir parametre ihtiyaç duyar(seçili özellik(ler)in öznitelik alanları için yeni değer ) ve ile adlandırılabilir
self.changeValue(50)