126 lines
4.2 KiB
Python
126 lines
4.2 KiB
Python
import pinPicture
|
||
from PIL import Image
|
||
import tkinter as tk
|
||
|
||
import pyautogui
|
||
import keyboard
|
||
|
||
|
||
def capture_screen():
|
||
screenshot = pyautogui.screenshot()
|
||
root = tk.Tk()
|
||
image = screenshot.convert('RGBA')
|
||
pin = pinPicture.PinPicture(image, root)
|
||
root.mainloop()
|
||
|
||
|
||
|
||
# 监听特定快捷键,这里假设是Ctrl+Alt+S
|
||
keyboard.add_hotkey('F7', capture_screen)
|
||
|
||
# 保持程序运行,持续监听快捷键
|
||
keyboard.wait()
|
||
|
||
#
|
||
# from tkinter import Tk, Frame, Canvas, Button
|
||
# from tkinter.colorchooser import askcolor
|
||
#
|
||
#
|
||
# class Application(Frame):
|
||
# def __init__(self, master=None):
|
||
# super().__init__(master)
|
||
# self.master = master
|
||
# self.pack()
|
||
# self.createWidget()
|
||
# self.x = 0
|
||
# self.y = 0
|
||
# self.lastDraw = 0 # 最后绘制的图形id
|
||
# self.startDrawFlag = False
|
||
# self.fgcolor = "red"
|
||
#
|
||
# def createWidget(self):
|
||
# # 创建绘图区
|
||
# self.drawPad = Canvas(root, width=900, height=500, bg="black")
|
||
# self.drawPad.pack()
|
||
#
|
||
# # 画图软件的各种按钮
|
||
# btn_pen = Button(self, text="画笔", name="pen")
|
||
# btn_pen.pack(side="left", padx="10")
|
||
# btn_rect = Button(self, text="矩形", name="rect")
|
||
# btn_rect.pack(side="left", padx="10")
|
||
# btn_clear = Button(self, text="清屏", name="clear")
|
||
# btn_clear.pack(side="left", padx="10")
|
||
# btn_erasor = Button(self, text="橡皮擦", name="erasor")
|
||
# btn_erasor.pack(side="left", padx="10")
|
||
# btn_line = Button(self, text="直线", name="line")
|
||
# btn_line.pack(side="left", padx="10")
|
||
# btn_lineArrow = Button(self, text="箭头直线", name="lineArrow")
|
||
# btn_lineArrow.pack(side="left", padx="10")
|
||
# btn_color = Button(self, text="颜色", name="color")
|
||
# btn_color.pack(side="left", padx="10")
|
||
#
|
||
# # 为所有button绑定事件
|
||
# btn_pen.bind_class("Button", "<1>", self.eventManage)
|
||
# self.drawPad.bind("<ButtonRelease-1>", self.stopDraw)
|
||
#
|
||
# def stopDraw(self, event):
|
||
# self.startDrawFlag = False
|
||
# self.lastDraw = 0
|
||
#
|
||
# def startDraw(self, event):
|
||
# self.drawPad.delete(self.lastDraw)
|
||
# if not self.startDrawFlag:
|
||
# self.startDrawFlag = True
|
||
# self.x = event.x
|
||
# self.y = event.y
|
||
#
|
||
# def eventManage(self, event):
|
||
# name = event.widget.winfo_name()
|
||
# print(name)
|
||
# if name == "line":
|
||
# self.drawPad.bind("<B1-Motion>", self.myline)
|
||
# elif name == "lineArrow":
|
||
# self.drawPad.bind("<B1-Motion>", self.mylineArrow)
|
||
# elif name == "rect":
|
||
# self.drawPad.bind("<B1-Motion>", self.myRect)
|
||
# elif name == "pen":
|
||
# self.drawPad.bind("<B1-Motion>", self.myPen)
|
||
# elif name == "erasor":
|
||
# self.drawPad.bind("<B1-Motion>", self.myErasor)
|
||
# elif name == "clear":
|
||
# self.drawPad.delete("all")
|
||
# elif name == "color":
|
||
# c = askcolor(color=self.fgcolor, title="选择画笔颜色")
|
||
# self.fgcolor = c[1]
|
||
#
|
||
# def myline(self, event):
|
||
# self.startDraw(event)
|
||
# self.lastDraw = self.drawPad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
|
||
#
|
||
# def mylineArrow(self, event):
|
||
# self.startDraw(event)
|
||
# self.lastDraw = self.drawPad.create_line(self.x, self.y, event.x, event.y, arrow=LAST, fill=self.fgcolor)
|
||
#
|
||
# def myRect(self, event):
|
||
# self.startDraw(event)
|
||
# self.lastDraw = self.drawPad.create_rectangle(self.x, self.y, event.x, event.y, outline=self.fgcolor)
|
||
#
|
||
# def myPen(self, event):
|
||
# self.startDraw(event)
|
||
# self.drawPad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
|
||
# self.x = event.x
|
||
# self.y = event.y
|
||
#
|
||
# def myErasor(self, event):
|
||
# self.startDraw(event)
|
||
# self.drawPad.create_rectangle(event.x - 3, event.y - 3, event.x + 3, event.y + 3, fill="black")
|
||
# self.x = event.x
|
||
# self.y = event.y
|
||
#
|
||
#
|
||
# if __name__ == '__main__':
|
||
# root = Tk()
|
||
# root.geometry("900x500+200+200")
|
||
# root.title("画图软件")
|
||
# app = Application(master=root)
|
||
# root.mainloop() |