【发布时间】:2012-11-24 10:03:58
【问题描述】:
使用 PyGTK 2,我可以附加一个在剪贴板内容更改时执行的函数。浏览 GTK3 的 python 绑定的文档,我找不到任何关于这种功能的描述。
谁能告诉我这方面的“最佳实践”吗?
编辑
使用 gtk2 可以实现以下工作:
import gtk
def test(*args):
print "Clipboard changed"
clip = gtk.Clipboard()
clip.connect('owner-change',test)
采用 Gtk3 时
from gi.repository import Gtk, Gdk
def test(*args):
print "Clipboard changed"
clip = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clip.Connect('owner-change',test)
Python 接受与信号的连接,但我的函数从未执行。
【问题讨论】:
-
PyGTK 中的信号是什么?我不知道。
-
我可以使用信号'owner-change'。即使在 GTK3 中 clipboard.connect 也接受信号,但我附加的函数从未被调用。
-
该信号的文档说当剪贴板选择的所有者发生变化时它会被触发。不是在内容更改时。如果您要依赖未记录的行为,那么您必须期望它会中断。
-
我意识到这一点,这就是为什么我要求“最佳实践”来获得此功能。
-
有趣的问题。 “所有者变更”显然是错误的信号,但我无法说出正确的解决方案是什么。