def doSavePlot(self):
     cwd = os.getcwd()
     p = QPixmap.grabWindow(self.winId())
     tn = datetime.datetime.now()
     filename = "img_" + "{:%Y-%m-%d-%H:%M:%S.%f}".format(tn)[:-7] + ".png"
     filename = os.path.join(cwd, filename)
     p.save(filename, 'png')
     print "saved to file: %s" % filename
Exemple #2
0
    def __performGrab(self):
        """
        Private method to perform a screen grab other than a selected region.
        """
        self.__grabberWidget.releaseMouse()
        self.__grabberWidget.hide()
        self.__grabTimer.stop()

        if self.__mode == SnapWidget.ModeFullscreen:
            desktop = QApplication.desktop()
            if qVersion() >= "5.0.0":
                self.__snapshot = QApplication.screens()[0].grabWindow(
                    desktop.winId(), desktop.x(), desktop.y(), desktop.width(),
                    desktop.height())
            else:
                self.__snapshot = QPixmap.grabWindow(desktop.winId(),
                                                     desktop.x(), desktop.y(),
                                                     desktop.width(),
                                                     desktop.height())
        elif self.__mode == SnapWidget.ModeScreen:
            desktop = QApplication.desktop()
            screenId = desktop.screenNumber(QCursor.pos())
            geom = desktop.screenGeometry(screenId)
            x = geom.x()
            y = geom.y()
            if qVersion() >= "5.0.0":
                self.__snapshot = QApplication.screens()[0].grabWindow(
                    desktop.winId(), x, y, geom.width(), geom.height())
            else:
                self.__snapshot = QPixmap.grabWindow(desktop.winId(), x, y,
                                                     geom.width(),
                                                     geom.height())
        else:
            self.__snapshot = QPixmap()

        self.__redisplay()
        self.__modified = True
        self.__updateCaption()
Exemple #3
0
 def __performGrab(self):
     """
     Private method to perform a screen grab other than a selected region.
     """
     self.__grabberWidget.releaseMouse()
     self.__grabberWidget.hide()
     self.__grabTimer.stop()
     
     if self.__mode == SnapWidget.ModeFullscreen:
         desktop = QApplication.desktop()
         if qVersion() >= "5.0.0":
             self.__snapshot = QApplication.screens()[0].grabWindow(
                 desktop.winId(), desktop.x(), desktop.y(),
                 desktop.width(), desktop.height())
         else:
             self.__snapshot = QPixmap.grabWindow(
                 desktop.winId(), desktop.x(), desktop.y(),
                 desktop.width(), desktop.height())
     elif self.__mode == SnapWidget.ModeScreen:
         desktop = QApplication.desktop()
         screenId = desktop.screenNumber(QCursor.pos())
         geom = desktop.screenGeometry(screenId)
         x = geom.x()
         y = geom.y()
         if qVersion() >= "5.0.0":
             self.__snapshot = QApplication.screens()[0].grabWindow(
                 desktop.winId(), x, y, geom.width(), geom.height())
         else:
             self.__snapshot = QPixmap.grabWindow(
                 desktop.winId(), x, y, geom.width(), geom.height())
     else:
         self.__snapshot = QPixmap()
     
     self.__redisplay()
     self.__modified = True
     self.__updateCaption()
    def __initialize(self):
        """
        Private slot to initialize the rest of the widget.
        """
        self.__desktop = QApplication.desktop()
        x = self.__desktop.x()
        y = self.__desktop.y()
        if qVersion() >= "5.0.0":
            self.__pixmap = QApplication.screens()[0].grabWindow(
                self.__desktop.winId(), x, y,
                self.__desktop.width(), self.__desktop.height())
        else:
            self.__pixmap = QPixmap.grabWindow(
                self.__desktop.winId(), x, y,
                self.__desktop.width(), self.__desktop.height())
        self.resize(self.__pixmap.size())
        self.move(x, y)
        self.setCursor(Qt.CrossCursor)
        self.show()

        self.grabMouse()
        self.grabKeyboard()
Exemple #5
0
    def __initialize(self):
        """
        Private slot to initialize the rest of the widget.
        """
        self.__desktop = QApplication.desktop()
        x = self.__desktop.x()
        y = self.__desktop.y()
        if qVersion() >= "5.0.0":
            self.__pixmap = QApplication.screens()[0].grabWindow(
                self.__desktop.winId(), x, y, self.__desktop.width(),
                self.__desktop.height())
        else:
            self.__pixmap = QPixmap.grabWindow(self.__desktop.winId(), x, y,
                                               self.__desktop.width(),
                                               self.__desktop.height())
        self.resize(self.__pixmap.size())
        self.move(x, y)
        self.setCursor(Qt.CrossCursor)
        self.show()

        self.grabMouse()
        self.grabKeyboard()
Exemple #6
0
def grab():
    pix = QPixmap.grabWindow(QApplication.desktop().winId())
    return pix.toImage()
Exemple #7
0

import sys
import os
import ctypes
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QPixmap
#构造RECT结构体
class RECT(ctypes.Structure):
    _fields_ = [('left', ctypes.c_long),
                ('top', ctypes.c_long),
                ('right', ctypes.c_long),
                ('bottom', ctypes.c_long)]
    def __str__(self):
        return str((self.left, self.top, self.right, self.bottom))
app = QApplication(sys.argv)
HWND = ctypes.windll.user32.FindWindowA(None, "window title")
if HWND == None:
    print("找不到窗口")
    quit()
QPixmap.grabWindow(HWND).save('c:/test.png', 'png')