Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from PyQt4 import QtCore
- from PyQt4 import QtGui
- from PyQt4 import QtWebKit
- class ScreenShot(QtGui.QWidget):
- renderFinished = QtCore.pyqtSignal(QtGui.QImage)
- def __init__(self, *args, **kw):
- QtGui.QWidget.__init__(self, *args, **kw)
- self.web_page = QtWebKit.QWebPage()
- self.web_page.loadFinished.connect(self.takeScreenShot)
- self.main_frame = self.web_page.mainFrame()
- self.main_frame.setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff)
- self.main_frame.setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff)
- def render(self, target_url):
- self.web_page.setViewportSize(QtCore.QSize(1024, 768))
- self.main_frame.load(target_url)
- def takeScreenShot(self, status):
- if status:
- contents_size = self.main_frame.contentsSize()
- viewport_size = QtCore.QSize(contents_size.width() + 32,
- contents_size.height() + 32)
- self.web_page.setViewportSize(viewport_size)
- offscreen_image = QtGui.QImage(viewport_size, QtGui.QImage.Format_RGB32)
- painter = QtGui.QPainter(offscreen_image)
- self.main_frame.render(painter)
- painter.end()
- self.renderFinished.emit(offscreen_image)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement