スクリーンショットを表示する

2015/8/11

Python2.7.6, PySide1.2.2

ポイントはこんな。

from PySide import QtCore,QtGui

view = QtGui.QGraphicsView()
scene = QtGui.QGraphicsScene()

pixmap = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId())
item = QtGui.QGraphicsPixmapItem(self.pixmap)

scene.addItem(self.item)
view.setScene(self.scene)


0.5秒ごとにスクリーンショットを表示し続けるフォーム

# -*- coding: utf-8 -*-

import sys,os
from PySide import QtCore,QtGui

class Viewer():

    repeatTime = 500 # ms

    def __init__(self):

        #window setup
        self.view = QtGui.QGraphicsView()
        self.scene = QtGui.QGraphicsScene()
        self.set()

        #update timer
        timer = QtCore.QTimer(self.view)
        timer.timeout.connect(self.set)
        timer.start(self.repeatTime)

    def set(self):
        #self.scene.removeItem(self.item)
        self.pixmap = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId())
        self.item = QtGui.QGraphicsPixmapItem(self.pixmap)
        self.scene.addItem(self.item)
        self.view.setScene(self.scene)

    def show(self):
        self.view.show()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    viewer = Viewer()
    viewer.show()
    sys.exit(app.exec_())