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

发布于 2024-10-05 17:23:32 字数 174 浏览 2 评论 0原文

我正在使用这条线截取屏幕截图

screen = QPixmap.grabWindow(QApplication.desktop().winId())

,但显然如果用户有多个显示器,则不会获取完整的桌面。

有没有办法将所有显示器的桌面抓取到单个图像中?

I'm taking a screenshot using this line

screen = QPixmap.grabWindow(QApplication.desktop().winId())

but apparently that doesn't grab the full desktop if the user has several monitors.

Is there a way to grab the desktop of all monitors into a single image?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沐歌 2024-10-12 17:23:32

根据这个 博客,只需添加 x, y、宽度和高度以获取整个桌面。

According to this blog, just add the x, y, width, and height to grab the full desktop.

油焖大侠 2024-10-12 17:23:32

只需要循环 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

Just need to loop over QApplication.screens() and grab them one at a time like so...

Note: using Python 3.8 and 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文