2012-10-25 101 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