เป็นไปได้ไหมที่จะเปลี่ยนสีในขณะที่เพิ่มเลเยอร์เวกเตอร์ ฉันมีเวกเตอร์เลเยอร์ที่มีพื้นที่น้ำและต้องการโหลดด้วยสไตล์สีฟ้า เพิ่มเลเยอร์ด้วย:
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
ฉันสามารถเปลี่ยนสีหลังจากหรือขณะโหลดได้หรือไม่?
เป็นไปได้ไหมที่จะเปลี่ยนสีในขณะที่เพิ่มเลเยอร์เวกเตอร์ ฉันมีเวกเตอร์เลเยอร์ที่มีพื้นที่น้ำและต้องการโหลดด้วยสไตล์สีฟ้า เพิ่มเลเยอร์ด้วย:
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
ฉันสามารถเปลี่ยนสีหลังจากหรือขณะโหลดได้หรือไม่?
คำตอบ:
คุณสามารถใช้สิ่งนี้:
symbols = self.vlayer.rendererV2().symbols()
symbol = symbols[0]
symbol.setColor(QColor.fromRgb(50,50,250))
เยี่ยมมาก!
ในที่สุดด้วยรหัสนี้การเปลี่ยนสีของเลเยอร์ทำงานได้สำหรับฉัน:
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 และแผงเลเยอร์อีกครั้ง