2012-10-25 55 views
6

随着PyGTK 2我可以附加一个函数,当剪贴板的内容被改变时执行。浏览GTK3的python绑定文档,我找不到任何这种功能的描述。python和gtk3剪贴板onChange

任何人都可以告诉我'最佳实践'吗?

编辑

随着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接受的信号的连接,但从来没有执行我的功能。

+0

PyGTK中有什么信号?我不知道。 – ptomato

+0

我可以使用信号“所有者更改”。 clipboard.connect即使在GTK3中也接受信号,但我附加的功能从来没有被调用过。 – user1773242

+0

该信号的文档说,当剪贴板选择的所有者发生更改时它会被触发。不是当内容改变时。如果你打算依赖无证的行为,那么你必须期望它破裂。 – ptomato

回答

2
from gi.repository import Gtk, Gdk 

def test(*args): 
    print "Clipboard changed" 

clip = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) 
clip.connect('owner-change',test) 
Gtk.main() 

适合我。

+0

奇怪!它现在起作用了,我的环境中一定有一些奇怪的设置。但是,“所有者更改”信号是否适用于此? – user1773242