覆盖所有屏幕并用鼠标绘制矩形



我正在开发一个捕捉屏幕打印的小程序,我想以与Win Snipping Tool类似的方式来完成它。首先,我需要用50%的不透明度层覆盖所有屏幕,然后用鼠标绘制一个矩形并读取顶点坐标。老实说,我不知道该怎么咬。我试过使用win32api/gui,它可以很好地获取鼠标坐标,但仍然无法绘制矩形。我的想法(其中之一(是(使用PIL/ImageGrab(拍摄两个显示器的照片,放置一个覆盖层,并将其打印为所有窗口的全屏,但我在做这件事时失败了。另一个想法是使用img抓取并在全屏中使用BeeWare/Toga(我正在使用的GUI框架(创建两个新窗口,但我找不到任何方法在第二个显示器上打开窗口。任何想法和暗示都将不胜感激,我真的很指望你,因为我觉得我已经走到了死胡同。

嗯,使用tkinter非常容易。好的,这是我制作屏幕截图应用程序时的原则:

  1. 用户按下按钮启动
  2. 制作一个新窗口,其宽度和高度应完全覆盖所有屏幕,并隐藏标题栏(如果必须实现,可以使用width=9999height=9999(
  3. 截图所有桌面(可以使用ImageGrab.grab((),all_screens=True)(
  4. 制作Canvas中显示的屏幕截图(我知道toga有这个小部件(
  5. 启动鼠标侦听器线程并保存按下的位置
  6. 当用户移动鼠标时,创建一个矩形(toga's Canvas有一个函数rect()(。也许使用这个rect(pressed_x,pressed_y,move_x,move_y)。然后删除最后一个矩形。(然后它总是只显示一个矩形(
  7. 当用户释放鼠标时,保存释放的位置。并使用ImageGrab.grab((pressed_x,pressed_y,released_x,released_y),all_screens=True)裁剪所选区域
  8. 如果您想在应用程序界面中显示它。toga有一个名为ImageView的小部件。您可以将图像放入其中

相关内容

  • 没有找到相关文章

最新更新