小編寫這篇文章的一個主要目的,主要是利用Python去制作截圖工具,當然,這個截圖工具是比較的簡易的,那么,具體的一個制作步驟是什么呢?下面就給大家詳細解答下。
這是工作期間同事想要個截完圖之后可以顯示并且永遠前置的截圖小工具(即不會被其他程序覆蓋)直接上代碼:
##-*-coding:utf-8-*- import tkinter as tk import pyautogui import tkinter from PIL import ImageTk from PIL import Image root=tk.Tk() root.wm_attributes('-topmost',1) root.overrideredirect(True)#隱藏窗口的標題欄 #root.attributes("-alpha",0.3)#窗口透明度70% root.attributes("-alpha",0.4)#窗口透明度60% #root.geometry("300x200+10+10")#設置窗口大小與位置 root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(),root.winfo_screenheight())) root.configure(bg="blue") #當工具條 canvas=tk.Canvas(root) canvas.configure(width=300) canvas.configure(height=100) canvas.configure(bg="yellow") canvas.configure(highlightthickness=0)#高亮厚度 canvas.place(x=(root.winfo_screenwidth()-500),y=(root.winfo_screenheight()-300)) canvas.create_text(150,50,font='Arial-20 bold',text='ESC退出,假裝工具條') #再創建1個Canvas用于圈選 cv=tk.Canvas(root) x,y=0,0 xstart,ystart=0,0 def move(event): global x,y,xstart,ystart new_x=(event.x-x)+canvas.winfo_x() new_y=(event.y-y)+canvas.winfo_y() s="300x200+"+str(new_x)+"+"+str(new_y) canvas.place(x=new_x-xstart,y=new_y-ystart) print("s=",s) print(root.winfo_x(),root.winfo_y()) print(event.x,event.y) #鼠標左鍵按下 def button_1(event): global x,y,xstart,ystart x,y=event.x,event.y xstart,ystart=event.x,event.y print("event.x,event.y=",event.x,event.y) xstart,ystart=event.x,event.y cv.configure(height=1) cv.configure(width=1) cv.place(x=event.x,y=event.y) #鼠標左鍵按下并移動 def b1_Motion(event): global x,y x,y=event.x,event.y print("event.x,event.y=",event.x,event.y) cv.configure(height=event.y-ystart) cv.configure(width=event.x-xstart) #鼠標左鍵松開 def buttonRelease_1(event): global x,y,xstart,ystart x,y=event.x,event.y print("event.x,event.y=",event.x,event.y) Pstart=[0,0] cv.place_forget() img=pyautogui.screenshot(region=[xstart,ystart,x-xstart,y-ystart])#x,y,w,h img.save('screenshot.png') #退出 def sys_out(even): root.destroy() func() #綁定事件 canvas.bind("<B1-Motion>",move) #綁定事件到Esc鍵,當按下Esc鍵就會調用sys_out函數,彈出對話框 root.bind('<Escape>',sys_out) root.bind("<Button-1>",button_1) root.bind("<B1-Motion>",b1_Motion) root.bind("<ButtonRelease-1>",buttonRelease_1) img_png=None def func(): root1=tk.Tk() root1.wm_attributes('-topmost',1) img_open=Image.open("screenshot.png") global img_png img_png=ImageTk.PhotoImage(img_open) label_img=tk.Label(root1,image=img_png) label_img.pack() root.mainloop()
具體用法是運行程序、選中區域(支持多次選定,以最后一次選定為主)、按esc完成截圖同時彈出永遠前置的截圖照片窗體。
我打包了發給同事同事說很好用,就是差個快捷鍵。
其實也很簡單,只須打包成exe程序后右擊屬性中設置快捷鍵即可~
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來一定幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128424.html
摘要:然后又介紹了基于的公號賬本應用的數據庫設計。歡迎關注公號四月試用。 前兩篇 微信公號DIY 系列: 微信公號DIY:一小時搭建微信聊天機器人 微信公號DIY:訓練聊天機器人&公號變身圖片上傳工具 介紹了如何使用搭建&訓練聊天機器人以及讓公號支持圖片上傳到七牛,把公號變成一個七牛圖片上傳客戶端。這一篇將繼續開發公號,讓公號變成一個更加實用的工具賬本(理財從記賬開始)。 代碼: 項目代...
摘要:然后又介紹了基于的公號賬本應用的數據庫設計。歡迎關注公號四月試用。 前兩篇 微信公號DIY 系列: 微信公號DIY:一小時搭建微信聊天機器人 微信公號DIY:訓練聊天機器人&公號變身圖片上傳工具 介紹了如何使用搭建&訓練聊天機器人以及讓公號支持圖片上傳到七牛,把公號變成一個七牛圖片上傳客戶端。這一篇將繼續開發公號,讓公號變成一個更加實用的工具賬本(理財從記賬開始)。 代碼: 項目代...
摘要:閱讀原文目前測試工具有哪些項目不需要不需要端到端測試一般都需要一個容器,來運行前端應用。向快速,一致和可靠的無剝落測試問好。 閱讀原文 1. 目前E2E測試工具有哪些? 項目 Web Star puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 31906 nightmare Electron 15502 ...
摘要:然而,這些模板并不限制你自己對于使用的架構組織和選擇類庫。目前可用的模板包括全功能的,包括熱加載,靜態檢測,單元測試一個簡易的,以便于快速開始。 最近, 尤大在和人對噴的時候,悄然放出了一個大招,于是為了追趕他的步伐,趕緊試驗了下,并且把原文給大家翻譯下。 原文地址:Announcing vue-cli 譯文源地址: Vuejs自己的構建工具 先上原文翻譯: 最近有很多大量關于Reac...
閱讀 917·2023-01-14 11:38
閱讀 888·2023-01-14 11:04
閱讀 747·2023-01-14 10:48
閱讀 2025·2023-01-14 10:34
閱讀 954·2023-01-14 10:24
閱讀 829·2023-01-14 10:18
閱讀 504·2023-01-14 10:09
閱讀 581·2023-01-14 10:02