5

I'm trying to take a string from the Windows clipboard and paste it into a listbox in a Tkinter GUI. It works great until trying to copy a image.

clipboardData = root.selection_get(selection="CLIPBOARD")
listbox.insert(0, clipboardData)

I have tried to use Tkinter, pyperclip and clipboard. How can I avoid non-text content?

jonrsharpe
  • 107,083
  • 22
  • 201
  • 376
snir.tur
  • 453
  • 3
  • 5
  • 13

1 Answers1

1

Using Tkinter, I would use a try..except block to insert the clipboard data where it exists and ignore it where it doesn't (or, optionally, add some default value). This doesn't specifically revoke any image-type clipboard contents, but it will reject anything that isn't in myTkObject.clipboard_get()'s expected format. That's a string by default, though you can change it with the function's type keyword argument.

Here's an example that builds on Nodak and jonrsharpe's answer and comments:

from Tkinter import Tk
myTkObject = Tk()
try:
    listbox.insert(0, myTkObject.clipboard_get())
except Tkinter.TclError:
    pass  # Instead of do-nothing, you can insert some default value if you like.
Augusta
  • 6,861
  • 4
  • 23
  • 39