使用Python和Tkinter从剪贴板复制

5

我正在尝试从Windows剪贴板中获取一个字符串,并将其粘贴到Tkinter GUI中的列表框中。它在复制图像时出现了问题。

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

我尝试过使用Tkinter、pyperclip和clipboard。如何避免非文本内容?


1
最简单的方法是为什么不使用 try: 来执行 listbox.insert,并使用 except WhateverError: 处理任何错误呢?例如,请参见 https://docs.python.org/2/tutorial/errors.html#handling-exceptions - jonrsharpe
尝试: clipboardData = clipboard.get() # root.selection_get(selection="CLIPBOARD") except: print "无法复制图像"仍然崩溃... - snir.tur
1
你尝试把 insert 放在 try 里面了吗? - Kevin
我的错误!try-except的解决方案可行!还有其他解决方案吗? - snir.tur
1
你需要多少个解决方案? - jonrsharpe
1个回答

1
使用Tkinter,我会使用一个try..except块来insert剪贴板数据,如果存在则插入,否则忽略它(或者可选地添加一些默认值)。这并没有特别撤销任何图像类型的剪贴板内容,但是它将拒绝任何不符合myTkObject.clipboard_get()预期格式的内容。默认情况下,这是一个字符串,但你可以使用该函数的type关键字参数进行更改。
以下是建立在Nodak和jonrsharpe的回答和评论上的示例:
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.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接