【Python ? 项目实战】pytesseract+pyqt实现图片识别软件小项目——(二)实现QQ截图功能

  • 鼠标左键按下,记录开始坐标
  • 鼠标右键按下,取消操作
  • 鼠标移动,记录鼠标坐标
  • 鼠标左键放开,记录鼠标移动结束坐标
  • 鼠标双击,保存截图内容
  • 绘图事件,实时绘制鼠标拖动的方框

此处的逻辑应该是这样的。当鼠标左键按下,就开始记录鼠标点击位置的坐标,鼠标移动时,更新一个新坐标,这个新坐标和之前的坐标就可以实时计算出这块矩形区域的x,y,width,height。当鼠标左键放开,就会记录下这一点的坐标,与第一个起始坐标进行计算,就可以得出截图区域的坐标。

鼠标移动事件是一直要运行的,因为要实时的预览我们截图的效果,因此要一直取得鼠标的位置。同时绘图事件也是需要一直运行的,它需要进行实时的计算我们预览的矩形区域,并且绘制在界面上。

鼠标右键的事件很简单,就是取消当前的操作,它的逻辑就是如果当前已经选择好区域了,那就取消这块区域,如果没有选择区域,那就关闭窗口。最终实现效果如下。

他的实现就是调用方法对桌面进行截屏,其实现代码如下,

还有一些变量是需要初始化的

  • 代表鼠标的开始坐标
  • 代表鼠标的结束坐标
  • 存放全屏截图的图片
  • 截取的图片
  • 鼠标左键是否按下
  • 进行绘制的对象

2. 实现鼠标按下事件

鼠标按下事件主要做两件事,

  1. 判断是按下鼠标左键还是鼠标右键
  2. 如果是鼠标左键就记录鼠标起始位置,否则就取消当前操作

事件处理程序流程图如下所示,

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月20日
下一篇 2022年9月20日

相关推荐