用Python做个简易截图小程序,上网课方便截知识点

效果图
代码如下:

import pyautogui as pgui
import keyboard,_thread,datetime,os,time
from tkinter import *

def replacechar(string,char1,char2): #将一个字符替换成另一个字符(文件名中不允许/字符,此函数可以把它替换掉)
    result_string=""
    for i in range(len(string)):
        if string[i]==char1:
            result_string+=char2
        else:
            result_string+=string[i]
    return result_string

#Tkinter界面
root=Tk()
root.title("按F2截图")
root.geometry("450x300")
root.resizable(False,False)
title=Label(root,text="按F2截图",bg="white",font=("华文仿宋",20),width=40,height=1)
title.pack(side=TOP)
label=Label(root,text="程序运行时,按F2截图,存储的图片会在screenshots文件夹。",width=50,height=1)
label.pack(side=TOP)
label1=Label(root,text="",font=("Arial",7),width=60,height=1)
label1.pack(side=BOTTOM)
label_text=["","",""]
label_textvar=[StringVar(),StringVar(),StringVar()]
labels=[None,None,None]
for i in range(3):
	labels[2-i]=Label(root,bg="yellow",width=55,height=1,textvariable=label_textvar[i])
	labels[2-i].pack(side=BOTTOM)
label2=Label(root,text="最近三张截图:↓",width=55,height=1)
label2.pack(side=BOTTOM)


def loop(): #检测是否按下F2并截图的线程
	while True:
		try:
			if keyboard.is_pressed("F2"):
				filename=replacechar("screenshots/screenshot_"+str(datetime.datetime.now())+".png",":","_") #每次截图前获取文件名
				pgui.screenshot().save(filename) #截图并保存
				label_text[0]=label_text[1]
				label_text[1]=label_text[2]
				label_text[2]=filename
				for i in range(3):
					label_textvar[i].set(label_text[i])
		except Exception as e:
			print(str(e))
		time.sleep(0.1) #为了防止电脑卡顿

_thread.start_new_thread(loop,())
root.mainloop()

使用此程序时,在电脑任意位置按F2,都可以截图。
运行此程序前,先在旁边创建一个名叫“screenshots”的文件夹,截图会存在那里。
此程序主要运用了pyautogui的截图和Tkinter的界面。
截图效果

这程序可能有个别小bug。此程序有什么不足,请提出。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值