เปลี่ยนความกว้างของเส้นขีดของรูปหลายเหลี่ยม PyQGIS
ฉันพยายามตั้งค่าความกว้างของรูปทรงทะเลสาบเป็นศูนย์หรือเปลี่ยนสีเป็นสีฟ้าอ่อนเนื่องจากฉันไม่ต้องการเห็นโครงร่างสีดำ ไฟล์เวกเตอร์เป็นรูปหลายเหลี่ยม (MultiPolygon) ชื่อ vlayer2 และฉันได้ลองใช้คำสั่งต่อไปนี้:
vlayer2.setStrokeWidth(0)
vlayer2.setStrokeColor([49,179,245])
vlayer2.setWidth(0)
แต่ฉันมักจะได้รับข้อความ: วัตถุ '' AttributeError: 'QgsVectorLayer' ไม่มีแอตทริบิวต์ '.... ' ''

คำตอบ
วิธีการที่คุณพยายามใช้เป็นของคลาสQgsSimpleMarkerSymbolLayer คุณต้องเข้าถึงเลเยอร์สัญลักษณ์ของตัวแสดงผลของเลเยอร์เวกเตอร์ก่อนจึงจะเรียกใช้เมธอดเหล่านี้
สิ่งต่อไปนี้ควรใช้สำหรับคุณในการกำหนดสีเส้นโครงร่างโดยจำไว้ว่าคุณต้องส่งQColor
วัตถุไปที่วิธีนี้:
vlayer2.renderer().symbol().symbolLayer(0).setStrokeColor(QColor(49, 179, 245))
vlayer2.triggerRepaint()
หรือคุณสามารถตั้งค่ารูปแบบเส้นขีดเป็น 'ไม่มีปากกา' การตั้งค่าความกว้างเป็น 0 จะยังคงให้ความกว้าง 'เส้นขน'
vlayer2.renderer().symbol().symbolLayer(0).setStrokeStyle(Qt.PenStyle.NoPen)
vlayer2.triggerRepaint()
ฉันแนะนำให้ตรวจสอบPyQGIS Developer Cookbookซึ่งมีตัวอย่างที่เป็นประโยชน์มากมาย