PyGTK:如何制作剪贴板显示器?

env*_*nvy 6 python clipboard pygtk monitor

如何使用PyGTK GUI在Python中创建一个简单的剪贴板监视器?

我发现了gtk.clipboard类,但是当剪贴板内容发生变化时,我找不到任何解决方案来获取触发事件的"信号".

有任何想法吗?

Chr*_*ton 4

如果没有适当的通知 API(例如 WM_DrawClipboard 消息),您可能必须求助于轮询循环。然后,您将与尝试使用此共享资源的其他应用程序造成重大冲突。
不要诉诸轮询循环。

  • @Ali - 轮询将导致与用户尝试从中复制数据的应用程序发生冲突。当您突出显示某些文本并按 Ctrl+C 时,应用程序假定它可以使用剪贴板。但如果另一个应用程序打开它进行检查,您将收到“无法打开剪贴板”错误。如果没有妥善处理该情况,则会发生崩溃。此外,当依赖轮询时,真正了解数据是否已更改的唯一方法是将数据粘贴到缓冲区中。这将触发任何等待发生的延迟渲染。 (2认同)
  • 剪贴板轮询既浪费又危险。仅仅因为您的应用程序没有崩溃,并不意味着您不会留下破坏的痕迹。 (2认同)