Această secțiune conține fragmente de cod, menite să faciliteze dezvoltarea plugin-urilor.
Î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")
Î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)
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)