Python Tkinter 文本框实现复制粘贴菜单
可以使用 Tkinter 库中的 Menu 和 Menu.add_command() 方法来创建复制、粘贴菜单。
具体实现步骤如下:
- 创建一个主窗口并添加两个文本框。
- 创建一个菜单栏,并将其添加到主窗口中。
- 在菜单栏中添加两个菜单项:复制和粘贴。
- 使用
Menu.add_command()方法将复制和粘贴功能与菜单项关联。 - 在文本框中绑定右键菜单,并将其与菜单栏中的复制和粘贴菜单项关联。
代码示例:
import tkinter as tk
def copy():
text = root.clipboard_get()
if text:
root.clipboard_clear()
root.clipboard_append(text)
def paste():
text = root.selection_get(selection='CLIPBOARD')
if text:
root.focus()
root.event_generate('<<Paste>>')
root = tk.Tk()
# 创建两个文本框
text1 = tk.Text(root)
text2 = tk.Text(root)
# 创建菜单栏
menubar = tk.Menu(root)
# 创建复制菜单项并绑定功能
copy_menu = tk.Menu(menubar, tearoff=0)
copy_menu.add_command(label='复制', command=copy)
menubar.add_cascade(label='复制', menu=copy_menu)
# 创建粘贴菜单项并绑定功能
paste_menu = tk.Menu(menubar, tearoff=0)
paste_menu.add_command(label='粘贴', command=paste)
menubar.add_cascade(label='粘贴', menu=paste_menu)
# 将菜单栏添加到主窗口
root.config(menu=menubar)
# 绑定右键菜单
text1.bind('<Button-3>', lambda e: copy_menu.post(e.x_root, e.y_root))
text2.bind('<Button-3>', lambda e: paste_menu.post(e.x_root, e.y_root))
# 将文本框添加到主窗口
text1.pack()
text2.pack()
root.mainloop()
运行代码后,右键单击文本框即可弹出复制、粘贴菜单。
原文地址: https://www.cveoy.top/t/topic/lMM9 著作权归作者所有。请勿转载和采集!