我注意到Entry
和Text
小部件的一个“特性”,当鼠标中键单击时,任何选定的文本都将被复制(基本上是复制和粘贴)。我试图防止这种行为,因为我不想或不需要它为我的用例。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('240x60')
entry = ttk.Entry(root)
entry.insert(0, 'Select me, then middle click!')
entry.pack(expand=True, fill='x', padx=20, pady=20)
if __name__ == '__main__':
root.mainloop()
我尝试使用事件绑定覆盖中键单击,但似乎无法阻止此行为:
entry.bind('<Button-2'>, 'break') # consume the middle-click event and bail
1条答案
按热度按时间ecfdbz9o1#
我最终使用
'<Button-2>'
绑定来清除文本选择,这似乎可以防止复制/粘贴我希望这对其他遇到这种情况的人有帮助!
ttk.Spinbox
小部件上,我怀疑 * 所有 * 小部件都有可编辑文本。通过在root
窗口上使用类似的绑定,我能够全局地避免这个问题这样,任何带有可编辑文本的小部件都不会出现这个问题,并且您不必为每个小部件创建单独的事件绑定。