Več

Zakaj openFeatureForm zruši QGIS?

Zakaj openFeatureForm zruši QGIS?


Delam na vtičniku Qgis s pythonom,

Ustvarjam funkcijo in prikažem obrazec funkcije za urejanje atributov. Toda poopenFeatureFormfunkcijo pokličite zrušitev programa in zaprite

vrstica = QgsFeature () line.setGeometry (QgsGeometry.fromPolyline (transformirana vrstica)) pr = parcoursLayer.dataProvider () pr.addFeatures ([vrstica]) qgis.utils.iface.openFeatureForm (parcoursLayer, linija)


tu se soočamo z istim problemom. Zdi se, da je povezano z napako v PyQt4.

Za rešitev tega problema si oglejte komentar preloadForm:

http://qgis.org/api/classQgisInterface.html

in tukaj je vprašanje, ki ga je NathanW postavil na QT / Pyqt 4:

http://forum.qt.io/topic/26562/crash-calling-c-method-using-quiloader-from-pyqt4


Preden nastavite geometrijo 'transforformedLine', jo poskusite natisniti. Ta objekt bi moral imeti podobno obliko (če je projiciran v metrih) kot ta (za eno značilnost):

[(366179,4.46968e+06), (357711,4.44966e+06), (363870,4.43041e+06), (382100,4.41947e+06), (396590,4.41078e+06)]

Seznam QgsPoint.

Druga čudna stvar je:

pr.addFeatures ([vrstica])

Prenašate seznam, kjer se pričakuje funkcija, vendar metoda 'addFeatures' ne obstaja v QgsDataProvider. Notri je QgsVectorLayer. Običajno bi bilo:

feat = QgsFeature () feat.setGeometry (QgsGeometry.fromPolyline (TransformedLine)) feat.setAttributes ([1]) #ena funkcija z id = 1; več funkcij v zanki your_layer.addFeature (feat, True)

Poglej si posnetek: QGIS + GeoServer. Layer publishing