Thật dễ dàng để đặt nội dung của bảng tạm ctrl-C ctrl-V bình thường trong Gtk 3 trong ứng dụng Python 3, với nội dung như
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clipboard.set_text("Đã hoạt động!, -1)
Cũng dễ dàng theo dõi bảng tạm để biết các thay đổi, bằng cách sử dụng đối tượng Clipboard. đổi chủ
dấu hiệu.
Tuy nhiên, tôi muốn bỏ qua đổi chủ
trong ứng dụng của tôi nếu đó là của tôi ứng dụng đó bộ nội dung của clipboard, và tôi không biết làm thế nào. Các đổi chủ
tín hiệu đi qua một chủ nhân
tham số trỏ đến một Gdk.Window
, nhưng tôi chưa bao giờ tạo cửa sổ trong ứng dụng của mình một cách rõ ràng; Tôi cho rằng Gtk lặng lẽ tạo một cái cho tôi vì cần phải có một số cửa sổ X xung quanh để sở hữu nội dung của khay nhớ tạm. Tôi có thể lấy ID của cửa sổ X đó khi chủ sở hữu khay nhớ tạm thay đổi bằng nội dung nào đó như:
def clipboardChanged(clipboard, owner_change):
print("Chủ sở hữu mới là", owner_change.owner.get_xid())
clipboard.connect('chủ-thay-đổi', clipboardChanged)
Cửa sổ chủ sở hữu mới này rõ ràng thuộc về ứng dụng của tôi, nhưng làm cách nào để tôi tìm thấy xid của nó trước thời hạn? Đó là: làm thế nào tôi có thể nói từ một đổi chủ
báo hiệu rằng chủ sở hữu mới là tôi?
(Lưu ý: nếu tôi đặt nội dung của khay nhớ tạm hai lần, tôi nhận được hai đổi chủ
tín hiệu, và chủ sở hữu_change.lý do
Là MỚI_CHỦ SỞ HỮU
mọi lúc, vì vậy điều này không đáng tin cậy: đặc biệt, MỚI_CHỦ SỞ HỮU
cũng được gửi cho "cùng một chủ sở hữu đã thiết lập lại" và không chỉ cho "a khác biệt chủ sở hữu hiện sở hữu khay nhớ tạm".)