截取多显示器设置的屏幕截图
我正在用这一行代码来截屏
screen = QPixmap.grabWindow(QApplication.desktop().winId())
但显然,如果用户有多个显示器,这样截取的并不能捕捉到整个桌面。
有没有办法把所有显示器的桌面合成一张图片呢?
2 个回答
0
只需要遍历一下 QApplication.screens()
,然后一个一个地获取它们,像这样...
注意:使用的是 Python 3.8 和 PyQt5
import os
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
for screen in QApplication.screens():
screen_path = os.path.expanduser(f"~/Desktop/{screen.name()}.jpg")
screen.grabWindow(0).save(screen_path, 'jpg')
# grabWindow(0) means full screen
# for area use following format; x=0, y=0, w=-1, h=-1
1
根据这篇博客的介绍,只需要添加x、y、宽度和高度,就可以抓取整个桌面截图。