#原创文章,转载注明出处
#云桌面的win10不能调出剪贴板,对于CV工程师来说十分不方便
用Python随手写了一个CV剪贴板,提升常用语句的复制粘贴效率、
功能:
- 界面鼠标左键单击--选中条目
- 鼠标左键双击--复制选中条目
- 鼠标中键、退格(删除)键--删除选中(活跃)条目
- 鼠标右键单击--将复制的内容粘贴到界面(新增条目)中
And:
- 选中条目按键F2或数字2下移,F3或数字8上移,可以把经常用到的条目放上面
- 内容很长的可以在最前面加一行注释,连带注释一起复制进来
- 关闭程序会保存剪贴板上的内容,不会随关机而清空。
1.创建存储数据的文件
#创建存储数据的文件,首次运行前单独运行生成存储数据的文件
import pickle as pk
fw=open("CVData","wb")
pk.dump((),fw)
fw.close()
2.程序代码
from tkinter import *
import pickle as pk
def add(event):
lb.insert(END,lb.clipboard_get())
def delete(event):
lb.delete("active")
def save():
fw=open("CVData","wb")
pk.dump(lb.get(0,END),fw)
fw.close()
win.destroy()
def copy(event):
lb.clipboard_clear()
lb.clipboard_append(lb.get("active"))
def up(event):
act=lb.get("active")
con=lb.get(0,END)
pos=con.index(act)
lb.delete(0,END)
for i in range(0,pos-1):
lb.insert(END,con[i])
lb.insert(END,con[pos])
if pos!=0:
lb.insert(END,con[pos-1])
for i in range(pos+1,len(con)):
lb.insert(END,con[i])
lb.activate(lb.get(0,END).index(act))
def down(event):
act=lb.get("active")
con=lb.get(0,END)
pos=con.index(act)
lb.delete(0,END)
for i in range(0,pos):
lb.insert(END,con[i])
if pos!=len(con)-1:
lb.insert(END,con[pos+1])
lb.insert(END,con[pos])
for i in range(pos+2,len(con)):
lb.insert(END,con[i])
lb.activate(lb.get(0,END).index(act))
win=Tk()
win.title("CtrlC+V")
win.attributes("-topmost",1)
lb=Listbox(win,font=("segoe print",15),width=20,height=30)#可调整窗口大小
lb.bind("<Button-3>",add)
lb.bind("<Double-Button-1>",copy)
lb.bind("<Button-2>",delete)
lb.bind("<BackSpace>",delete)
lb.bind("<F3>",up)
lb.bind("<F2>",down)
lb.bind("<Key-8>",up)
lb.bind("<Key-2>",down)
con=pk.load(open("CVData","rb"))
for i in con:
lb.insert(END,i)
lb.pack()
win.protocol("WM_DELETE_WINDOW",save)
win.mainloop()
3.其他
可以创建快捷方式(Windows),将快捷方式复制到开始菜单目录下即可在开始菜单中启动该程序
按下win键,开始菜单中找到一个非uwp软件的图标,点击打开文件位置就是。图标可以用greenfish生成
Windows下右击快捷方式,属性设置可以指定快捷键。
CV真滴爽~~