Ich schreibe ein Python-Skript, das den Inhalt der Zwischenablage überprüft und in der Konsole ausgibt. Das Folgende ist das Skript, das ich verwende.tkinter Fehler beim Kopieren von Inhalten aus der Zwischenablage in Python
import time
from tkinter import Tk
while True:
r = Tk()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
Wenn ich es laufen, ohne Text zu kopieren, erhalte ich die folgenden Fehler:
return self.tk.call(('selection', 'get') + self._options(kw))
_tkinter.TclError: CLIPBOARD selection doesn't exist or form "STRING" not defined
ich, dass es zu verstehen scheint, da es keine Inhalte in der Zwischenablage befinden. Einmal nach dem Kopieren eines Textes, läuft der Code gut. Um das Problem zu überwinden, schrieb ich den Code auf folgende Weise:
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)
Ich schrieb dies so, dass ich die Datei mit einem Starter Text in der Zwischenablage starten kann. Dies wird helfen, den Fehler zu stoppen. Obwohl der Fehler nicht mehr auftritt, druckt der Code jetzt nur noch "Starter Text". Auch nach dem Kopieren von Inhalten in die Zwischenablage scheinen sie nicht gedruckt zu werden.
Kann ich einige Vorschläge zur Vermeidung des Fehlers erhalten und gleichzeitig die Werte drucken, wenn ich etwas in die Zwischenablage kopiere.
Ihr Trick "Starter Text" behebt das Problem nicht - was, wenn der Benutzer ein Bild oder ein anderes Nicht-Text-Objekt in die Zwischenablage kopiert hat, während das Programm läuft? Sie müssen "try"/"except" verwenden, um den Fehler zu erkennen und zu ignorieren, wenn kein Text in der Zwischenablage vorhanden ist. Ich bin mir nicht sicher, warum Sie keine Änderungen in der Zwischenablage sehen - vielleicht muss der Tkinter-Hauptloop ausgeführt werden, damit dies funktioniert. – jasonharper