我正在尝试使用 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/