资讯详情

截图工具(窗体永远前置)

这是一个小的截图工具,可以在同事想要截图后显示工作期间显示即不会被其他程序覆盖)直接上代码:

# # -*- 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在右击属性中设置快捷键~

其中一些是参考其他博客,这是我很久以前为同事写的。我没有找到它。如果博客发现麻烦,请联系我,我会给你一个链接。

标签: tk261型铠装液位变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司