मैं क्लिपबोर्ड में अपनी छोटी लिपियों के परिणाम देने के लिए निम्न कोड का उपयोग करता हूं।विंडोज़ पर पायथन 3.4 में टिंकर विंडोज क्लिपबोर्ड पर बाहरी क्लिपबोर्ड डेटा पोस्ट नहीं करते हैं
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append("Result")
यह पायथन संस्करण 3.3.5 और इससे पहले ठीक काम करता है। लेकिन जब मैं पायथन 3.4 में अपग्रेड करता हूं तो इसे खाली क्लिपबोर्ड प्राप्त होता था। मैंने 3.4.0, 3.4.1 और 3.4.2 की कोशिश की और सभी को एक परिणाम मिला (खाली क्लिपबोर्ड)। यदि मैं स्क्रिप्ट को तत्काल बाहर निकलने से रोकता हूं, input()
clipboard_append()
के बाद, मुझे लगता है कि क्लिपबोर्ड में सही "परिणाम" है।
Update1:
संशोधित परीक्षण स्क्रिप्ट से पता चलता है कि समस्या एक समय मुद्दा नहीं है:
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append("Result")
input()
r.destroy()
अगर मैं इस स्क्रिप्ट को चलाने, कुछ सेकंड प्रतीक्षा करें, प्रेस दर्ज करें, मैं खाली प्राप्त क्लिपबोर्ड।
यदि मैं स्क्रिप्ट चलाता हूं, तो किसी भी अन्य विंडो पर स्विच करें और Ctrl + V दबाएं, मुझे स्क्रिप्ट निकलने के बाद क्लिपबोर्ड में "परिणाम" और "परिणाम" रहता है।
मुझे लगता है कि टीसीएल/टीके 8.6 clipboard_clear()
सिस्टम क्लिपबोर्ड को प्रभावित करता है, लेकिन clipboard_append
केवल आंतरिक टीसीएल/टीके क्लिपबोर्ड को प्रभावित करता है जो केवल ओएस अनुरोध द्वारा सिस्टम क्लिपबोर्ड में स्थानांतरित होता है। ऐसा लगता है कि यह लिनक्स में किया गया था, जिसमें सिस्टम क्लिपबोर्ड नहीं है।
Update2:
Tk changelog में अंतिम उल्लेख क्लिपबोर्ड 2004 तक संदर्भित करता है:
2004-05-03 (bug fix)[939389, 822002, 732662] Correctly post internal
clipboard data to the Windows clipboard on exit. (hobbs)
ऐसा लगता है कि 2004 में ठीक किया त्रुटि हमें 10 साल बाद लौट आए।
मुझे एक ही समस्या है, मुझे आशा है कि आपने एक बग रिपोर्ट पोस्ट की है ... (bugs.python.org) –