มันง่ายที่จะตั้งค่าเนื้อหาของคลิปบอร์ด ctrl-C ctrl-V ปกติใน Gtk 3 ในแอพ Python 3 ด้วยบางอย่างเช่น
คลิปบอร์ด = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clipboard.set_text("ได้ผล!, -1)
นอกจากนี้ยังง่ายต่อการตรวจสอบคลิปบอร์ดสำหรับการเปลี่ยนแปลงโดยใช้วัตถุคลิปบอร์ด เจ้าของเปลี่ยน
สัญญาณ.
อย่างไรก็ตามฉันขอเพิกเฉย เจ้าของเปลี่ยน
ในแอปของฉันหากเป็นเช่นนั้น ของฉัน แอพนั้น ชุด เนื้อหาของคลิปบอร์ด และฉันไม่รู้ว่าต้องทำอย่างไร เดอะ เจ้าของเปลี่ยน
สัญญาณผ่าน เจ้าของ
พารามิเตอร์ที่ชี้ไปที่ Gdk.หน้าต่าง
แต่ฉันไม่เคยสร้างหน้าต่างในแอปของฉันอย่างชัดเจน ฉันคิดว่า Gtk สร้างอย่างเงียบ ๆ ให้ฉันเพราะต้องมีหน้าต่าง X อยู่รอบ ๆ เพื่อเป็นเจ้าของเนื้อหาของคลิปบอร์ด ฉันสามารถรับ ID ของหน้าต่าง X ได้เมื่อเจ้าของคลิปบอร์ดเปลี่ยนแปลงด้วยสิ่งต่อไปนี้:
def clipboardChanged (คลิปบอร์ด, Owner_change):
พิมพ์ ("เจ้าของใหม่คือ", owner_change.owner.get_xid())
clipboard.connect('เปลี่ยนเจ้าของ', clipboardChanged)
เห็นได้ชัดว่าหน้าต่างเจ้าของใหม่นี้เป็นของแอปของฉัน แต่ฉันจะหา xid ก่อนเวลาได้อย่างไร นั่นคือ: ฉันจะบอกได้อย่างไรจาก เจ้าของเปลี่ยน
ส่งสัญญาณว่าเจ้าของใหม่คือ ฉัน?
(หมายเหตุ: ถ้าฉันตั้งค่าเนื้อหาของคลิปบอร์ดสองครั้ง ฉันจะได้รับสองรายการ เจ้าของเปลี่ยน
สัญญาณ และ Owner_change.reason
เป็น NEW_OWNER
ทุกครั้ง จึงไม่น่าเชื่อถือ โดยเฉพาะอย่างยิ่ง NEW_OWNER
ถูกส่งสำหรับ "เจ้าของคนเดิมตั้งค่าอีกครั้ง" และไม่ใช่แค่สำหรับ "a แตกต่าง ตอนนี้เจ้าของเป็นเจ้าของคลิปบอร์ด")