Ich bin ein Anfänger in der Programmierung. Ich mache das als Hobby und um meine Produktivität bei der Arbeit zu verbessern.Tkinter Windows reagiert nicht bei Verwendung von update() in einer While-Schleife
Ich schreibe ein Programm, um automatisch die Zwischenablage zu einem Tkinter entry
einfügen, wenn ein Benutzer eine Textzeile kopieren.
Ich verwende eine while
Schleife, um festzustellen, ob es eine Änderung in der aktuellen Zwischenablage gibt, dann fügen Sie den neu kopierten Text der Zwischenablage in den Tkinter-Eintrag ein.
Die GUI wird perfekt aktualisiert, wenn ich eine neue Textzeile kopiere.
Die GUI reagiert jedoch nicht und ich kann nicht auf die TK entry
klicken, um etwas einzugeben, das ich möchte.
FYI Ich verwende Python 3.5
Software. Vielen Dank im Voraus.
Mein Code:
from tkinter import *
import pyperclip
#initial placeholder
#----------------------
old_clipboard = ' '
new_clipboard = ' '
#The GUI
#--------
root = Tk()
textvar = StringVar()
label1 = Label(root, text='Clipboard')
entry1 = Entry(root, textvariable=textvar)
label1.grid(row=0, sticky=E)
entry1.grid(row=0, column=1)
#while loop
#-----------
while(True): #first while loop: keep monitoring for new clipboard
while(old_clipboard == new_clipboard): #second while loop: check if old_clipboard is equal to the new_clipboard
new_clipboard = pyperclip.paste() #get the current clipboard
print('\nold clipboard pre copy: ' + old_clipboard)
old_clipboard = new_clipboard #assign new_clipboard to old_clipboard
print('current clipboard post copy: ' + old_clipboard)
print('\ncontinuing the loop...')
textvar.set(old_clipboard) #set the current clipboard to GUI entry
root.update() #update the GUI
root.mainloop()