python - 无法在 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_())
版本信息:
macOS: 11.4
Python: 3.8.5
PyQt5: 5.15.4
这是 PyQt5 的错误吗?
解决方案
推荐阅读
- python - 为什么第三次迭代没有发生在循环中?
- google-chrome - 在 iframe 中 SameSite=Lax cookie 和 GET 请求的规则是什么?
- javascript - 在 SVG 图形中显示百分比
- html - ng build 后新建文件夹
- docker - docker-compose up 没有启动所有声明的服务
- html - DataTable 分页在 AngularJS 中不起作用
- scripting - GRETL 脚本:是否可以在没有 $workdir 的情况下使用字符串变量来使用 OPEN?
- java - 如何将时间从 milis 转换为日期时间?
- angular - 如何将列放在 PrimeNG 数据表中的行位置
- java - if语句中的否定是否会降低执行速度?