Outdated version of the documentation. Find the latest one here.

Kod Parçacıkları

Bu bölüm eklenti geliştirmeyi kolaylaştıran kod parçacıklarını belirtir.

Bir metodu anahtar kısa yolla nasıl çağırırsınız

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")

Katmanları nasıl açıp kaparsınız

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)

seçili özelliklerin özellik tablosuna nasıl erişilir

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)