Este ușor să setați conținutul clipboard-ului normal ctrl-C ctrl-V în Gtk 3 într-o aplicație Python 3, cu ceva de genul
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clipboard.set_text("A funcționat!, -1)
De asemenea, este ușor să monitorizați clipboard-ul pentru modificări, folosind obiectul Clipboard schimbare de proprietar
semnal.
Totuși, aș vrea să ignor schimbare de proprietar
în aplicația mea dacă a fost Ale mele aplicație care a stabilit conținutul clipboard-ului și nu știu cum. The schimbare de proprietar
semnal trece an proprietar
parametru care indică a Gdk.Fereastră
, dar nu creez niciodată în mod explicit o fereastră în aplicația mea; Presupun că Gtk creează în liniște unul pentru mine, deoarece trebuie să existe o fereastră X în jur pentru a deține conținutul clipboard-ului. Pot obține ID-ul ferestrei X atunci când proprietarul clipboard-ului se schimbă cu ceva de genul:
def clipboardChanged(clipboard, proprietar_change):
print("Noul proprietar este", owner_change.owner.get_xid())
clipboard.connect('schimbarea proprietarului', clipboardChanged)
Această nouă fereastră de proprietar aparține în mod evident aplicației mele, dar cum îi găsesc xid-ul înainte de timp? Adică: cum pot spune dintr-un schimbare de proprietar
semnal că noul proprietar este pe mine?
(Notă: dacă setez conținutul clipboard-ului de două ori, primesc două schimbare de proprietar
semnale, și proprietar_change.motiv
este NOUL PROPRIETAR
de fiecare dată, deci acest lucru nu este de încredere: în special, NOUL PROPRIETAR
este trimis și pentru „același proprietar a stabilit din nou”, și nu doar pentru „a diferit proprietarul acum deține clipboard-ul".)