2012-10-25 28 views
6

Với PyGTK 2 Tôi có thể đính kèm chức năng được thực thi khi nội dung của clipboard được thay đổi. Duyệt qua tài liệu về các ràng buộc python của GTK3 Tôi không thể tìm thấy bất kỳ mô tả nào về chức năng như vậy.python và gtk3 clipboard onChange

Có ai cho tôi biết 'thực hành tốt nhất' cho việc này không?

EDIT

Với gtk2 các công việc sau:

import gtk 

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

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

Khi áp dụng để 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 chấp nhận kết nối đến tín hiệu, nhưng chức năng của tôi là không bao giờ thực hiện.

+0

Tín hiệu nào trong PyGTK? Tôi không biết về nó. – ptomato

+0

Tôi có thể sử dụng tín hiệu 'chủ sở hữu thay đổi'. clipboard.connect chấp nhận tín hiệu ngay cả trong GTK3, nhưng hàm tôi đính kèm không bao giờ được gọi. – user1773242

+0

Tài liệu của tín hiệu đó nói rằng nó được kích hoạt khi chủ nhân của lựa chọn clipboard được thay đổi. Không phải khi nội dung được thay đổi. Nếu bạn sẽ dựa vào hành vi không có giấy tờ, thì bạn phải kỳ vọng nó sẽ bị phá vỡ. – ptomato

Trả lời

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

hoạt động cho tôi.

+0

Lạ! Nó hoạt động bây giờ, tôi phải có một số loại thiết lập lạ trong môi trường của tôi. Tuy nhiên, tín hiệu 'Chủ sở hữu thay đổi' có dành cho điều này không? – user1773242

Các vấn đề liên quan