วิธีการเปลี่ยนสีของเลเยอร์เวกเตอร์ใน pyQGIS?


10

เป็นไปได้ไหมที่จะเปลี่ยนสีในขณะที่เพิ่มเลเยอร์เวกเตอร์ ฉันมีเวกเตอร์เลเยอร์ที่มีพื้นที่น้ำและต้องการโหลดด้วยสไตล์สีฟ้า เพิ่มเลเยอร์ด้วย:

QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)

ฉันสามารถเปลี่ยนสีหลังจากหรือขณะโหลดได้หรือไม่?

คำตอบ:


11

คุณสามารถใช้สิ่งนี้:

symbols = self.vlayer.rendererV2().symbols()
symbol = symbols[0]
symbol.setColor(QColor.fromRgb(50,50,250))

เยี่ยมมาก!


7

ในที่สุดด้วยรหัสนี้การเปลี่ยนสีของเลเยอร์ทำงานได้สำหรับฉัน:

QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)       
symbols = self.vrlayer.rendererV2().symbols()
symbol = symbols[0]
symbol.setColor(QtGui.QColor.fromRgb(50,50,250))
qgis.utils.iface.mapCanvas().refresh() 
qgis.utils.iface.legendInterface().refreshLayerSymbology(self.vlayer)

คุณต้องโหลด MapCanvas และแผงเลเยอร์อีกครั้ง


รหัสนี้ช่วยฉันจากการวิจัย painfull => qgis.utils.iface.legendInterface (). refreshLayerSymbology (self.vlayer)
Kostadin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.