Привет всем.
Есть код, отслеживающий буфер обмена. Реализован так (образец):
#!/usr/bin/python3
import tkinter as tk
import sys
from time import sleep
lev_crit='CRITICAL'
def log(func='MAIN',lev_crit='CRITICAL',cur_mes='Сообщение'):
print(func,':',lev_crit,':',cur_mes)
def clipboard_copy(line='Сообщение'):
root.clipboard_clear()
root.clipboard_append(line)
def clipboard_paste():
return root.clipboard_get()
def watch_clipboard():
cur_func=sys._getframe().f_code.co_name
root.withdraw()
old_clipboard=clipboard_paste()
while True:
log(cur_func,lev_crit,'Ожидание изменения буфера...')
sleep(1)
new_clipboard=clipboard_paste()
log(cur_func,lev_crit,'Новый буфер: "%s"' % str(new_clipboard))
if old_clipboard!=new_clipboard:
root.deiconify()
break
root=tk.Tk()
#clipboard_copy('lamer')
watch_clipboard()
root.mainloop()
Почему, если раскомментировать clipboard_copy, выхода из цикла не происходит, а Tkinter считает, что буфер обмена не изменен?