Python PyQt5-抓取屏幕的一部分

Python PyQt5-抓取屏幕的一部分,python,image,window,pyqt,screenshot,Python,Image,Window,Pyqt,Screenshot,我试图使用PyQt5来检测屏幕的特定部分何时发生变化。我的计划是为每个图像创建一个md5散列,看看它们是否相同,但我甚至无法成功抓取屏幕。这就是我到目前为止所做的: import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * win = QApplication.activeWindow() print(win) 出于某种原因,它总是返回None,这意味着它找不到活

我试图使用PyQt5来检测屏幕的特定部分何时发生变化。我的计划是为每个图像创建一个md5散列,看看它们是否相同,但我甚至无法成功抓取屏幕。这就是我到目前为止所做的:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

win = QApplication.activeWindow()
print(win)

出于某种原因,它总是返回None,这意味着它找不到活动窗口。我对Python有点在行,但对PyQt5来说绝对是个新手,我被难住了。有人知道我做错了什么吗?

这是您的完整代码吗?如果是这样:您知道您的代码甚至没有启动QApplication,甚至没有打开任何可能是activeWindow的窗口吗?因此,如果不打开任何窗口,activeWindow将返回None。所以,您应该首先得到一个工作的hello-world-scale PyQt示例,以实际显示一个窗口……这是我在hello-world-scale程序中尝试只查找一个活动窗口。这是我第一次使用PyQt,我认为“窗口”是指其他程序——web浏览器、excel、游戏等等。这通常就是“窗口”的意思,尤其是在“活动窗口”的上下文中。PyQt中有什么不同吗?如果是这样的话,那就有点迟钝了。我不确定这是否迟钝——但是使用QApplication.activeWindow,您将只获得作为QApplication一部分的活动窗口。您可以检查是否要抓取屏幕的外来部分。@InfiniteMonkeys。一般来说,像Qt这样的GUI工具包只创建windows的内容。窗口本身(如框架和标题栏)最终由创建,它还负责定位窗口、图标化窗口、在桌面之间移动窗口等。因此,您需要寻找一些操作级别高于GUI工具包的工具。谷歌建议使用PyQt,这就是我一直试图使其工作的原因。如果我做不到,我会按照@ekhumoro的建议去做,但与另一个问题的链接似乎就是我想要的。关于这个片段,有一件事我不明白,那就是“app=QApplicationsys.argv”。据我所知,sys.argv是您发送脚本的命令行参数列表,这意味着程序是否正确运行取决于您是否使用正确的命令行参数。我不知道该用哪一个论点,或者如何找出答案。让我知道我是否应该提出一个新的问题。谢谢