截取多显示器设置的屏幕截图

3 投票
2 回答
1212 浏览
提问于 2025-04-16 07:55

我正在用这一行代码来截屏

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、宽度和高度,就可以抓取整个桌面截图。

撰写回答