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
  • 115,751
  • 26
  • 228
  • 437
snir.tur
  • 461
  • 3
  • 7
  • 14

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
  • 7,171
  • 5
  • 24
  • 39