1
รอให้ Canvas วาดเสร็จก่อนบันทึกภาพ
ฉันกำลังพยายามเขียนสคริปต์ที่จะบันทึกการเรนเดอร์ของเลเยอร์หลาย ๆ อันโดยใช้โปรแกรมแต่งแผนที่ ปัญหาที่ฉันพบคือสคริปต์บันทึกไว้ก่อน qgis แสดงผลเลเยอร์ทั้งหมดเสร็จสิ้นแล้ว จากคำตอบอื่น ๆ อีกหลายข้อ ( 1 , 2 , 3 ) ฉันพยายามใช้iface.mapCanvas.mapCanvasRefreshed.connect()และวางการบันทึกภาพไว้ในฟังก์ชั่น แต่ฉันยังคงพบปัญหาเดียวกัน - ภาพไม่รวมเลเยอร์ทั้งหมด รหัสที่ฉันใช้รวมถึงรูปภาพของหน้าต่างหลักและการเรนเดอร์หน้าตามีลักษณะดังรายการด้านล่าง ฉันสังเกตว่าถ้าฉันเปิดหน้าต่างคอนโซลและไม่แสดงข้อคิดเห็นทั้งสามprint layerListบรรทัดโปรแกรมจะรอการเรนเดอร์ให้เสร็จก่อนบันทึกภาพ ฉันไม่แน่ใจว่านี่เป็นเพราะเวลาในการประมวลผลที่เพิ่มขึ้นหรือหากมีการเปลี่ยนแปลงวิธีการทำงานของโปรแกรม ฉันจะใช้สิ่งนี้อย่างถูกต้องได้อย่างไรเพื่อให้เลเยอร์ทั้งหมดรวมอยู่ในภาพ from qgis.core import * from qgis.utils import * from qgis.gui import * from PyQt4.QtCore import * from PyQt4.QtGui import * import os.path ##StackExchange Version=name ##Map_Save_Folder=folder …