2012-10-25 16 views
6

Z PyGTK 2 mogłem dołączyć funkcję, która zostanie wykonana po zmianie zawartości schowka. Przeglądając dokumentację wiązań Pythona GTK3 nie mogę znaleźć żadnego opisu takiej funkcjonalności.python i gtk3 clipboard onChange

Czy ktoś może mi powiedzieć "najlepszą praktykę" w tym zakresie?

EDIT

Z gtk2 następujące prace:

import gtk 

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

clip = gtk.Clipboard() 
clip.connect('owner-change',test) 

Przyjmując do 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 zaakceptuje połączenie do sygnału, ale moja funkcja nie jest wykonywany.

+0

Jaki był sygnał w PyGTK? Nie wiem o tym. – ptomato

+0

Mogę użyć sygnału "zmiana właściciela". clipboard.connect akceptuje sygnał nawet w GTK3, ale funkcja I attach nigdy nie jest wywoływana. – user1773242

+0

Dokumentacja tego sygnału mówi, że jest on uruchamiany, gdy właściciel wyboru schowka zostanie zmieniony. Nie, gdy zawartość zostanie zmieniona. Jeśli masz polegać na nieudokumentowanym zachowaniu, musisz się spodziewać, że się zepsuje. – ptomato

Odpowiedz

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() 

działa dla mnie.

+0

Dziwne! Działa to teraz, musiałem mieć jakieś dziwne ustawienia w moim otoczeniu. Czy jednak przeznaczony jest do tego sygnał "Zmiana właściciela"? – user1773242