LINUX.ORG.RU

Tkinter и выход из цикла

 , ,


0

1

Привет всем.

Есть код, отслеживающий буфер обмена. Реализован так (образец):

#!/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 считает, что буфер обмена не изменен?

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Надо делать root.update().

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.