【问题标题】:Copy from clipboard using Python and Tkinter使用 Python 和 Tkinter 从剪贴板复制
【发布时间】:2015-04-02 17:56:26
【问题描述】:

我正在尝试从 Windows 剪贴板中获取一个字符串并将其粘贴到 Tkinter GUI 中的列表框中。在尝试复制图像之前效果很好。

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

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

【问题讨论】:

  • 最简单的,为什么不用try:listbox.insert 并用except WhateverError: 处理任何错误?参见例如docs.python.org/2/tutorial/errors.html#handling-exceptions
  • try: clipboardData = clipboard.get() # root.selection_get(selection="CLIPBOARD") except: print "Can't copy images" 仍然崩溃...
  • 您是否尝试将insert 放入try 中?
  • 我的错! try-except 解决方案有效!还有其他解决方案吗?
  • 您需要多少解决方案?

标签: python tkinter clipboard


【解决方案1】:

使用Tkinter,我将使用try..except 块来insert 剪贴板数据存在的地方,并在不存在的地方忽略它(或者,可选地,添加一些默认值)。这不会专门撤销任何图像类型的剪贴板内容,但它拒绝任何不是myTkObject.clipboard_get() 预期格式的内容。默认情况下这是一个字符串,但您可以使用函数的 type 关键字参数来更改它。

这是一个基于 Nodak 和 jonrsharpe 的答案和 cmets 的示例:

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.

【讨论】:

    猜你喜欢
    • 2019-08-04
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多