[Tkinter-discuss] clipboard and bytes
Vasilis Vlachoudis
Vasilis.Vlachoudis at cern.ch
Thu Mar 1 11:13:37 EST 2018
I did something else.
I've used the binascii.b2a_hex() and a2b_hex() functions
to convert the bytes() to a hex string and the reverse (double in size, and
a useless UTF-8 conversion, encode/decode)
This way it works but not a clean approach,
since I am copying in the clipboard binary data in a form of ascii.
Is there a way to create a new mime format and advertise
the format somehow in the clipboard?
Vasilis
________________________________________
From: Vasilis Vlachoudis
Sent: Thursday, March 01, 2018 16:42
To: Michael Lange; tkinter-discuss at python.org
Subject: RE: [Tkinter-discuss] clipboard and bytes
Many thanks!
I works within the same process.
When I try to launch it twice, so I can have clipboard exchange between different processes
I get the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 1702, in __call__
return self.func(*args)
File "foo.py", line 41, in paste
res = root.tk.call(clip)
_tkinter.TclError: invalid command name "139879786444744cp"
I saw in the documentation that by default it uses the UTF8STRING as type
I've tried to force it to type="STRING" but with no success
________________________________________
From: Tkinter-discuss [tkinter-discuss-bounces+vasilis.vlachoudis=cern.ch at python.org] on behalf of Michael Lange [klappnase at web.de]
Sent: Thursday, March 01, 2018 00:12
To: tkinter-discuss at python.org
Subject: Re: [Tkinter-discuss] clipboard and bytes
On Wed, 28 Feb 2018 20:42:51 +0100
Michael Lange <klappnase at web.de> wrote:
(...)
> So at least this primitive seems to work. Maybe you can use this
> technique to achieve what you want.
Or maybe this slightly modified example comes closer to what you are
looking for:
from tkinter import *
root = Tk()
def copy(string):
def cp():
return string
copyfunc = (root.register(cp))
return(copyfunc)
root.clipboard_clear()
root.clipboard_append(copy(b'foobar'), type='foo')
def paste(ev):
clip = root.clipboard_get(type='foo')
res = root.tk.call(clip)
print('->', res, type(res))
root.bind('<F1>', paste)
root.mainloop()
Regards
Michael
.-.. .. ...- . .-.. --- -. --. .- -. -.. .--. .-. --- ... .--. . .-.
"... freedom ... is a worship word..."
"It is our worship word too."
-- Cloud William and Kirk, "The Omega Glory", stardate
unknown
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss at python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss
More information about the Tkinter-discuss
mailing list