擅长:python、mysql、java
<p>除了@JacksonPro的答案之外,您还可以尝试这种方法</p>
<pre class="lang-py prettyprint-override"><code>from tkinter import *
def backspace(event):
if text.tag_ranges(SEL):
text.insert(SEL_FIRST,text.get(SEL_FIRST, SEL_LAST))
else:
last_char=text.get('1.0','end-1c')[-1]
text.insert(END,last_char)
root=Tk()
text=Text(root)
text.pack()
text.bind('<KeyRelease>', lambda event=None:root.clipboard_clear())
text.bind('<KeyPress>', lambda event=None:root.clipboard_clear())
text.bind('<BackSpace>', backspace)
root.mainloop()
</code></pre>
<p>这基本上会在每次执行<code>KeyPress</code>或<code>KeyRelease</code>时清除剪贴板,因此无法进行复制/粘贴<strike>函数<code>backspace()</code>获取最后一个字符,并将其重新插入使用backspace的最后一个位置,间接限制其功能。</strike>我以前对<code>backspace()</code>的建议不正确,因为它没有考虑选择,但现在它应该在所有情况下都能工作,如果选择了某个字符,它将获取所选文本并将其插入到所选内容的开头(<code>SEL_FIRST</code>),否则它将仅获取并重新插入最后一个字符</p>