【问题标题】:Python - changing paste behavior in TkinterPython - 在 Tkinter 中更改粘贴行为
【发布时间】:2016-03-01 01:16:17
【问题描述】:

我正在使用 Tkinter 制作一个小程序,但我遇到了粘贴问题。

我希望能够使用鼠标中键单击 Text 小部件中的文本,而无需粘贴任何内容。我已经尝试过绑定它:

text.bind('<<Paste>>', lambda x: 'break')

但这只会禁用键盘 Ctrl-V 粘贴,而不是鼠标中键。这让我觉得这可能是一个 X11(我在 Debian)问题,但即使是这样,有没有办法拦截粘贴事件?我想让它尽可能便携。

【问题讨论】:

  • 查看text.tcl 内部,通常在 debian 上的/usr/share/tcltk8.6 中,以查看文本小部件默认具有哪些绑定。这将告诉您需要重新绑定什么。
  • 谢谢!看起来我需要绑定的是&lt;&lt;PasteSelection&gt;&gt;,而不是&lt;&lt;Paste&gt;&gt;。这将保留 Ctrl-V 粘贴,但禁用中键粘贴。您可以将其发布为答案,我很乐意接受:)

标签: python-2.7 tkinter


【解决方案1】:

文本小部件的默认绑定位于名为 text.tcl 的文件中,该文件通常位于 Debian 上的 /usr/share/tcltk8.6 中。

通过检查默认绑定,您可以找到要覆盖的或unbind。正如您在评论中提到的,您发现是 &lt;&lt;PasteSelection&gt;&gt; 而不是 &lt;&lt;Paste&gt;&gt; 绑定在做您不想要的事情。

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多