【发布时间】:2017-01-06 14:42:34
【问题描述】:
我为我编写的文本编辑器实现了标准的复制和粘贴功能,但似乎我没有正确理解 tkinter 中滚动文本小部件的插入方法的行为:我的代码的行为方式与我不同期待。
这里是最小的例子。这是一个带有滚动文本小部件的窗口和一个将示例文件“Test.txt”加载到文本小部件的按钮和一个结束按钮。复制和粘贴功能通过快捷键 ctrl-c、ctrl-v 实现。在粘贴时,代码将剪贴板的内容插入两次,而不是一次,我完全不知道为什么。谁能告诉我我做错了什么?提前致谢!
import tkinter, tkinter.scrolledtext
def ende():
main.destroy()
def loadSampleFile():
d=open("Test.txt")
z=d.readline()
while z:
t.insert("end",z)
z=d.readline()
d.close()
def paste(event_obj):
text2paste=t.selection_get(selection='CLIPBOARD')
print(t.clipboard_get())
t.insert('insert',text2paste)
def copy2clipboard(event_obj):
text2copy=t.get(tkinter.SEL_FIRST,tkinter.SEL_LAST)
t.clipboard_clear()
t.clipboard_append(text2copy)
main=tkinter.Tk()
t=tkinter.scrolledtext.ScrolledText(main, width=40, height=1)
t.pack()
t.bind('<Control-c>',copy2clipboard)
t.bind('<Control-v>',paste)
bshow=tkinter.Button(main, text="Show File", command=loadSampleFile)
bshow.pack()
bende=tkinter.Button(main, text="end", command=ende)
bende.pack()
main.mainloop()
【问题讨论】:
标签: python tkinter copy clipboard paste