ich schreibe gerade ein kleines Plugin für Quantum GIS und muss dafür zum ersten mal mit Python und Qt arbeiten. Das Konzept der Slots und Signals gefällt mir eigentlich ganz gut, aber irgendwas scheine ich noch nicht richtig zu begreifen, hier mal ein paar snippets:
Code: Alles auswählen
self.layer = self.iface.activeLayer()
if self.layer.type() == QgsMapLayer.VECTOR:
QObject.connect(self.layer, SIGNAL("selectionChanged()"), self.showSelected)
Code: Alles auswählen
def showSelected(self):
layer = self.iface.activeLayer()
featureIDs = layer.selectedFeaturesIds()
for id in featureIDs:
print id
Jedenfalls erscheint beim testen jedesmal folgende Fehlermeldung:
Code: Alles auswählen
An error has occured while executing Python code:
Traceback (most recent call last):
File "/home/georg/.qgis//python/plugins/grassify/GrassifyPlugin.py", line 45, in run
hp = HarrisParser(self.iface, self.iface.getMainWindow())
File "/home/georg/.qgis//python/plugins/grassify/HarrisParser.py", line 64, in __init__
QObject.connect(self.layer, SIGNAL("selectionChanged()"), self.showSelected)
TypeError: argument 1 of QObject.connect() has an invalid type
Danke schonmal!