一个简单的macOS剪贴板管理程序

该程序使用Python的Tkinter库构建GUI,结合pyperclip库监听和管理剪贴板内容。它创建了一个可悬浮的无边框窗口,展示剪贴板历史记录,并支持文本和图片。用户可以清空全部内容,删除选定项目,或一键退出时删除所有记录。
摘要由CSDN通过智能技术生成

之前一直找不到合适的macOS下剪切板管理程序,所以我自己写了一个,代码如下:

import tkinter as tk
import pyperclip
from PIL import ImageTk, Image
import os

# 创建窗口
window = tk.Tk()
window.title("剪切板管理器")
window.geometry("300x400")
window.overrideredirect(True)  # 去除窗口边框
window.attributes("-topmost", True)  # 窗口置顶

# 创建列表框
listbox = tk.Listbox(window)
listbox.pack(fill=tk.BOTH, expand=True)

# 清空所有复制和剪切的文本或图片
def clear_all():
    listbox.delete(0, tk.END)

# 删除选中的之前剪切的文字或图片
def delete_selected():
    selected_indices = listbox.curselection()
    for index in selected_indices:
        listbox.delete(index)

# 一键退出程序并删除所有的复制或剪切记录
def quit_program():
    clear_all()
    window.destroy()

# 创建按钮框架
button_frame = tk.Frame(window)
button_frame.pack()

# 创建按钮
clear_button = tk.Button(button_frame, text="清空", command=clear_all)
clear_button.pack(side=tk.LEFT, padx=5)

delete_button = tk.Button(button_frame, text="删除", command=delete_selected)
delete_button.pack(side=tk.LEFT, padx=5)

quit_button = tk.Button(button_frame, text="退出", command=quit_program)
quit_button.pack(side=tk.LEFT, padx=5)

# 监听剪贴板
def clipboard_listener():
    while True:
        content = pyperclip.paste()
        if content not in listbox.get(0, tk.END):
            listbox.insert(0, content)
        window.update()
        time.sleep(1)

# 开启剪贴板监听线程
import threading
import time
listener = threading.Thread(target=clipboard_listener)
listener.daemon = True
listener.start()

# 鼠标点击事件处理
def handle_click(event):
    selection = listbox.get(listbox.curselection())
    if os.path.isfile(selection):
        # 如果选择的是图片文件,则显示图片
        image = Image.open(selection)
        image.show()
    else:
        # 否则将文本内容放入剪贴板
        pyperclip.copy(selection)

# 绑定鼠标点击事件
listbox.bind('<Double-Button-1>', handle_click)

# 运行主循环
window.mainloop()

这个小程序实现功能是:1.该程序界面可以悬浮在桌面上,并且不影响其他程序使用;2.该程序可以同时储存多个复制的内容,并且以列表的形式展示在程序窗口;3.我可以通过鼠标点选需要粘贴的文本或者图片;3.窗口下面有3个按钮,一个按钮清空所有复制和剪切的文本或图片,一个按钮删除选中的之前剪切的文字或图片,还有一个按钮一键退出该程序,并且字退出之前删除所有的复制或者剪切的记录。 

程序运行后界面如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值