使用 python 的窗口截图 [英] Screenshot of a window using python

查看:45
本文介绍了使用 python 的窗口截图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 linux 上使用 python 脚本截取当前窗口的屏幕截图.

I'm trying to take a screenshot of the curent window using a python script on linux.

我目前有一个脚本可以截取整个屏幕:

I curently have a script which takes a screenshot of the entire screen:

import sys
from PyQt4.QtGui import QPixmap, QApplication
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save(filename, 'jpg')

但是 a 只想拥有选定的窗口.我知道问题来自于gra​​bWindow.但是不知道怎么解决.

But a would like to have only the selected window. I know that the problem comes from grabWindow. But I don't know how to resolve it.

推荐答案

简单替换

QApplication.desktop()

使用您要截取屏幕截图的小部件.

with the widget you want to take the screenshot of.

import sys
from PyQt4.QtGui import *
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
widget = QWidget()
# set up the QWidget...
widget.setLayout(QVBoxLayout())

label = QLabel()
widget.layout().addWidget(label)

def shoot():
    p = QPixmap.grabWindow(widget.winId())
    p.save(filename, 'jpg')
    label.setPixmap(p)        # just for fun :)
    print "shot taken"

widget.layout().addWidget(QPushButton('take screenshot', clicked=shoot))

widget.show()
app.exec_()

这篇关于使用 python 的窗口截图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆