复制从剪贴板中的内容时,我正在写一个Python脚本,将检查剪贴板中的内容,并将它们打印在控制台中。以下是我正在使用的脚本。Tkinter的错误在Python
import time
from tkinter import Tk
while True:
r = Tk()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
当我运行它,而不复制任何文字,我得到下面的错误:
return self.tk.call(('selection', 'get') + self._options(kw))
_tkinter.TclError: CLIPBOARD selection doesn't exist or form "STRING" not defined
我明白,它表现为有剪贴板没有内容。一旦复制任何文本后,代码运行良好。为了克服这个问题,我重写了代码以下列方式:
import time
from tkinter import Tk
r = Tk()
x = 1
while x < 2:
r.clipboard_clear()
r.clipboard_append("Starter Text")
x += 1
while True:
r.clipboard_clear()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
我写了这个,这样我可以通过在剪贴板首发文本开始文件。这将有助于停止错误。即使它阻止了发生的错误,代码现在也会重复打印“Starter Text”。即使将内容复制到剪贴板后,它们似乎也不会被打印出来。
我能如何避免错误,同时提出了一些建议打印值每当我的东西复制到剪贴板。
你“开头文字”招实际上并没有解决这个问题 - 如果用户使用你的程序运行时要复印的图像或其他非文本项目复制到剪贴板?当剪贴板上没有文本时,您需要使用'try' /'except'来捕捉并忽略错误。我不知道为什么你没有看到变化到剪贴板 - 也许主循环需要的Tkinter来运行这个工作。 – jasonharper