Fragmente de cod

Această secțiune conține fragmente de cod, menite să faciliteze dezvoltarea plugin-urilor.

Cum să apelăm o metodă printr-o combinație rapidă de taste

În plug-in adăugați în 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)

În unload() add

self.iface.unregisterMainWindowAction(self.keyAction)

Metoda care este chemată atunci când se apasă tasta F7

def keyActionF7(self):
  QMessageBox.information(self.iface.mainWindow(),"Ok", "You pressed F7")

Inversarea Stării Straturilor

Începând de la QGIS 2.4, un nou API permite accesul direct la arborele straturilor din legendă. Exemplul următor prezintă modul în care se poate inversa vizibilitatea stratului activ

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)

Cum să accesați tabelul de atribute al entităților selectate

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

Metoda necesită un parametru (noua valoare pentru câmpul atribut al entități(lor) selectate) și poate fi apelat de către

self.changeValue(50)