【问题标题】:paste causes duplicate pasting natively but not in other apps or remotely粘贴会导致本地重复粘贴,但不会在其他应用程序或远程粘贴
【发布时间】: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


【解决方案1】:

根据我在这里获得的帮助,我找到了一些文档(2010 年 Usenet 帖子 here),只需禁用我的包装器即可解决问题。有趣,但是在我实现包装器之前,这些内置函数不起作用,现在它们起作用了。谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多