Javascript QWebPage中的QImage未完全呈现

Javascript QWebPage中的QImage未完全呈现,javascript,google-maps,pyqt,Javascript,Google Maps,Pyqt,我希望在图像完全加载时将页面内容保存到图像中,但有时会得到未完全渲染的输出光栅 import sys import signal import os from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import QWebPage app = QApplication(sys.argv) signal.signal(signal.SIGINT, signal.SIG_DFL) webpage = Q

我希望在图像完全加载时将页面内容保存到图像中,但有时会得到未完全渲染的输出光栅

import sys
import signal
import os
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage

app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
webpage = QWebPage()
def onLoadFinished(result):
    if not result:
        print "Request failed"
        sys.exit(1)
    webpage.setViewportSize(webpage.mainFrame().contentsSize())
    image = QImage(webpage.viewportSize(), QImage.Format_ARGB32)
    painter = QPainter(image)
    webpage.mainFrame().render(painter)
    painter.end()
    if os.path.exists("output.png"):
        os.remove("output.png")
    image.save("output.png")
    sys.exit(0) # quit this application

webpage.mainFrame().load(QUrl("file:///page.html"))
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
sys.exit(app.exec_())
该页面正在使用JavaScript(onload函数)获取谷歌地图(640x640px)

结帐。使用
QWebPage.mainFrame().evaluateJavaScript()
方法添加此javascript代码:

google.maps.event.addListenerOnce(map, 'idle', function(){
    // do something only the first time the map is loaded
});
您可能还会发现该方法很有用。

签出。使用
QWebPage.mainFrame().evaluateJavaScript()
方法添加此javascript代码:

google.maps.event.addListenerOnce(map, 'idle', function(){
    // do something only the first time the map is loaded
});

您可能也会发现该方法很有用。

这可能是因为图像是在页面加载完成后使用Ajax加载的。这有用吗?可能是因为图像是在页面加载完成后使用Ajax加载的。这有用吗?