1
画像を保存する前に、キャンバスのレンダリングが完了するのを待ちます
マップコンポーザーを使用して、複数のレイヤーのレンダリングを保存するスクリプトを作成しようとしています。私が直面している問題は、qgisがすべてのレイヤーのレンダリングを完了する前にスクリプトが保存されることです。 いくつかの他の回答(に基づいて1、2、3)、私が使用しようとしてきたiface.mapCanvas.mapCanvasRefreshed.connect()し、関数内で保存した画像を入れて、私はまだ同じ問題に直面しています-画像はすべてのレイヤーが含まれていません。 私が使用しているコードと、メインウィンドウとレンダリングがどのように見えるかの画像を以下に示します。 コンソールウィンドウを開いて3 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 ##Map_Save_Name=string roadmap # Create save file location mapName = "%s.png" %Map_Save_Name outfile = os.path.join(Map_Save_Folder,mapName) pdfName = "%s.pdf" %Map_Save_Name …