Wenn ich versuche, meinen Code auszuführen, wird alles ausgeführt, aber die After-Function-Aufrufe werden sofort aktualisiert, trotz der 5 Sekunden Verzögerung, die ich eingefügt habe. Darüber hinaus zeigt die GUI kein Diagramm .tkinter .after() Funktion pausiert nicht
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()
Jede Hilfe zur Lösung dieses Problems oder nur allgemeine Python Tipps würden sehr geschätzt werden.
Warum haben Sie importzeit verwendet? Time.sleep funktioniert nicht in tkinter. – Jake
Ich benutzte das nur zum Debuggen und vergaß es zu entfernen. – user3517818