首页 > 解决方案 > 无法在 macOS Big Sur 上使用 PyQt5 获取屏幕截图

问题描述

我正在尝试使用该grabWindow()方法在我的 PyQt5 程序中捕获窗口的屏幕截图。我从这里实现了代码。它在 Windows 上运行良好,但我总是在 macOS 上获得整个屏幕的屏幕截图。

编码:

from PyQt5 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()

grab_btn=QtWidgets.QPushButton('Grab Screen')

def click_handler():
    screen = QtWidgets.QApplication.primaryScreen()
    screenshot = screen.grabWindow(w.winId())
    screenshot.save('shot.jpg', 'jpg')
    w.close()

grab_btn.clicked.connect(click_handler)

layout = QtWidgets.QVBoxLayout()
layout.addWidget(grab_btn)
w.setLayout(layout)
w.show()

sys.exit(app.exec_())

结果: 拍摄.jpg

版本信息:

macOS: 11.4
Python: 3.8.5
PyQt5: 5.15.4

这是 PyQt5 的错误吗?

标签: pythonpyqt5screenshot

解决方案


推荐阅读