내 코드를 실행하려고하면 모든 코드가 실행되지만 after 함수는 5 초의 지연에도 불구하고 즉시 업데이트를 호출합니다.이 위에는 GUI가 그래프를 표시하지 않습니다. .tkinter .after() 함수가 일시 중지되지 않습니다.
import tkinter as tk
import numpy as np
import time
import functools
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
main = tk.Tk()
container = tk.Frame(main)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
f = Figure(figsize=(5,5), dpi=100)
a = f.add_subplot(111)
canvas = FigureCanvasTkAgg(f, master=main)
canvas.show()
canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
def update(a, canvas):
data = np.genfromtxt('test.csv', delimiter=',', names=['x', 'y'])
a.clear()
a.plot(data['x'], data['y'], color='r', label='the data')
canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
print ("update")
main.after(5000, functools.partial(update, a)(canvas))
main.after(5000, functools.partial(update, a)(canvas))
main.mainloop()
이 문제를 해결하는 데 도움이되었거나 일반적인 파이썬 팁에 대한 도움을 주시면 감사하겠습니다.
왜 가져온 시간을 사용 했습니까? Time.sleep은 tkinter에서 작동하지 않습니다. – Jake
난 그냥 디버깅을 위해 그것을 사용하고 그것을 제거하는 것을 잊었습니다. – user3517818