ich möchte ein kleines Tkinter-Programm schreiben, das mir Eingabefelder automatisch mit Inhalten aus der Zwischenablage in einer vorgegebenen Reihenfolge füllt. Möchte mir damit die Datenerfassung vereinfachen, da ich mir nach Strg+C das manuelle Navigieren ins Eingabefeld und dortige Einfügen spare. So sieht mein bisheriger Ansatz aus:
Code: Alles auswählen
import tkinter as tk
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.current_entry = 0
self.max_entries = 3
self.clipboard_clear()
self.clipboard_append("")
for n in range(self.max_entries):
ClipboardEntry(self, index=n).pack(side=tk.TOP)
class ClipboardEntry(tk.Entry):
def __init__(self, parent, index, *args, **kwargs):
tk.Entry.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.index = index
self.entry_var = tk.StringVar()
self.entry_var.set("")
self["textvariable"] = self.entry_var
self.refresh_entry()
def refresh_entry(self):
if (
self.entry_var.get() == ""
and self.clipboard_get() != ""
and self.parent.current_entry == self.index
):
self.entry_var.set(self.clipboard_get())
self.clipboard_clear()
self.clipboard_append("")
self.parent.current_entry += 1
self.after(250, self.refresh_entry)
if __name__ == "__main__":
root = tk.Tk()
MainApplication(root).pack()
root.mainloop()