python - 使用python的窗口截图

标签 python pyqt

我正在尝试使用 Linux 上的 Python 脚本截取当前窗口的屏幕截图。

我目前有一个截取整个屏幕截图的脚本:

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 只想拥有选定的窗口。我知道问题出在grabWindow。但我不知道如何解决。

最佳答案

简单替换

QApplication.desktop()

使用您想要截屏的小部件。

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 - 使用python的窗口截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705712/

相关文章:

python - "ValueError: A given column is not a column of the dataframe"尝试将分类特征转换为数值时

python - 一站式管理

python - 使用 python 在文件列表中查找正确的中间证书类型

python - 无法保存Qt绘图的状态

python - 如何将抓取的项目放入 Pyqt5 小部件中?

python - PyQt4中loadFinished后如何返回值

python - 使用 NumPy 和 PyQt4 重复显示随机噪声图像

python - 调用列表上的函数

python - 具体情况不会通过第 8 行 elif :

python - Pyqt:QTextCursor.WordUnderCursor 未按预期工作