python截取tkinter窗口

在python中有tkinter库可以做简单的界面,必要时需要保存当前窗口的显示信息,故需要截屏tkinter窗口的功能。

老规矩上代码,相比较网上提供的需要win32gui库的代码,我是没安装成功,经过研究,发现脚本中并未使用该库,直接抹除。

测试环境python3.7版本,pygetwindow和PIL库的安装方法可自行百度

from tkinter import *
import pygetwindow as gw   # 必要的库,用于获取窗口的位置
from PIL import ImageGrab  # 必要的库,用于图片保存的

def ss():
    win = gw.getWindowsWithTitle('DaysLeft')[0]  # 获取叫"DaysLeft"的窗口,和title对应
    winleft = win.left+9
    wintop = win.top+38 
    winright = win.right-9
    winbottom = win.bottom-9  # 获取tkinter窗口的位置
    final_rect = (winleft,wintop,winright,winbottom)
    img = ImageGrab.grab(final_rect)  # 获取窗口所在位置的方位的像素点信息
    img.save('Required Image.png')   # 保存img像素到文件中
#making the tkinter window
root = Tk()
root.title('DaysLeft')  # 当前窗口的名字

root.after(3000,ss) # 过了3000ms 调用ss函数

root.mainloop()

启动脚本正常后,出现一个窗口,经过3000ms后保存文件为“Required Image.png”,图片中保存的是一个空荡荡的图片,原因为,抹除标头信息,只保留主体界面。

python截取tkinter窗口_第1张图片

 

python截取tkinter窗口_第2张图片

 

你可能感兴趣的:(python,开发语言)