Я открываю Windows Matplotlib из графического интерфейса tkinter.Было бы полезно вернуть лимиты обратно в tkinter для обработки следующего открытого окна Event с предопределенными лимитами.Для этого я определил новую кнопку в меню окна matplotlib, которая должна записывать ограничения в консоль, но не может записывать в окно TK.
Я попробовал следующее, но оно не работает по неизвестным причинам:
from Tkinter import *
import matplotlib.pyplot as plt
master = Tk()
e = Entry(master)
e.pack()
e.focus_set()
def callback():
def a():
print(ax.get_xlim())
e.delete(0, END)
e.insert(0, ax.get_xlim()[0])
fig,ax = plt.subplots(1, 1)
plt.plot([1, 2, 3])
fig.canvas.manager.toolbar.addAction("Write limit\nback to gui",a)
plt.show()
b = Button(master, text="Open matplotlib", width=15, command=callback)
b.pack()
mainloop()
Работающая альтернатива, которую я попробовал, - это использовать обратные вызовы, но было бы неплохо, чтобы отображалась информацияinstantaniously.
from Tkinter import *
import matplotlib.pyplot as plt
master = Tk()
global A
A=[]
e = Entry(master)
e.pack()
e.focus_set()
def func(Hubbel):
if len(A):
e.delete(0, END)
e.insert(0, A[0])
master.bind("<FocusIn>", func)
def callback():
def a():
print(ax.get_xlim())
print(A)
if len(A)==0:
A.append(ax.get_xlim())
else:
A[0]=ax.get_xlim()
fig,ax = plt.subplots(1, 1)
plt.plot([1, 2, 3])
fig.canvas.manager.toolbar.addAction("Write limit\nback to gui",a)
plt.show()
b = Button(master, text="Open matplotlib", width=15, command=callback)
b.pack()
mainloop()