2012-10-25 12 views
6

पीईजीटीके 2 के साथ मैं क्लिपबोर्ड की सामग्री बदलते समय निष्पादित करने के लिए एक फ़ंक्शन संलग्न कर सकता था। जीटीके 3 के पायथन बाइंडिंग के दस्तावेज के माध्यम से ब्राउज़ करना मुझे ऐसी कार्यक्षमता का कोई विवरण नहीं मिल रहा है।पायथन और gtk3 क्लिपबोर्ड ऑन चेंज

क्या कोई मुझे इसके लिए 'सर्वश्रेष्ठ अभ्यास' बता सकता है?

संपादित

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) 

को गोद लेने जब अजगर संकेत करने के लिए कनेक्शन को स्वीकार करता है, लेकिन मेरे समारोह निष्पादित कभी नहीं किया गया है।

+0

पीईजीटीके में क्या संकेत था? मुझे इसके बारे में पता नहीं है। – ptomato

+0

मैं सिग्नल 'स्वामी-परिवर्तन' का उपयोग कर सकता हूं। क्लिपबोर्ड.कनेक्ट जीटीके 3 में भी सिग्नल स्वीकार करता है, लेकिन जो फ़ंक्शन मैं संलग्न करता हूं उसे कभी नहीं कहा जाता है। – 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

संबंधित मुद्दे