【发布时间】:2016-04-21 03:42:42
【问题描述】:
当我在我的小准系统文本编辑器中使用复制和粘贴时,我得到了双重粘贴。所以,如果我复制“test”,粘贴的是“testest”。如果我然后尝试复制“bla”,则粘贴的是“testtestblabla”。但是,如果我剪切了一些东西,那么只有上一个副本留下的材料才会包含在粘贴中——剪切的材料本身不会复制。
我试过将文字粘贴到记事本和写字板,以及网上,都没有出现这种现象。但它确实发生在我的 Windows 环境和我的(双启动)Debian 环境中。在 Windows 和 Debian 中使用 pyinstaller 编译的未编译脚本和独立二进制文件中的问题是相同的(顺便提一下,后者在 Linux 和 Windows 中执行时都没有问题,但问题相同)。
据我所知,这是有问题的代码:
def copy(self, event=None):
text = self.editing_window.get("sel.first", "sel.last")
self.display.clipboard_clear()
self.display.clipboard_append(text)
def cut(self, event):
self.copy()
self.editing_window.delete("sel.first", "sel.last")
def paste(self, event):
self.editing_window.insert(INSERT, self.display.clipboard_get())
硬件:Dell Precision T1600、i3-3120、Quadro 600 开源软件:Windows 7 和 Debian 8.4
即使打开控制台也没有错误消息。这很可能是某种语义问题。
有什么解决办法吗?
【问题讨论】:
-
请展示一个完整的例子。很可能是因为您正在实现自己的绑定,但 tkinter 已经具有用于剪切、复制和粘贴的绑定。如果没有看到完整的工作示例(刚好 足以说明的代码),很难确定。见stackoverflow.com/help/mcve
-
如果 tkinter 确实有自己的剪切、复制和粘贴绑定,我很乐意使用它们,但你知道 tkinter 文档的状态是什么,所以我无法了解他们。感谢您(也许是无意地)为我提供了一点帮助,告诉我这些绑定存在。 :)
标签: windows python-3.x tkinter debian clipboard