我试图用GUI做一个情节。我的想法是,当我点击"提交"如果我点击"提交"再次,情节应该关闭并重新打开。
然而,当我点击"提交"该图显示正确,但我需要手动关闭绘图窗口以使按钮再次释放?
我已将代码清理为仅包含要点:
import matplotlib.pyplot as plt # import plot functions
from mpl_toolkits.mplot3d import Axes3D
from Tkinter import *
################################ TKINTER GUI ##################################
root = Tk()
label_1 = Label(root, text="File name:")
entry_1 = Entry(root)
entry_1.insert(0,"Input")
label_1.grid(sticky=E)
entry_1.grid(row=0, column=1, columnspan=3)
def saveentry():
plt.close()
name1 = entry_1.get()
################################### PLOTTING ##################################
fig = plt.figure()
ax = fig.gca(projection='3d')
plt.show(fig)
Button_1 = Button(root, text="Submit", command=saveentry)
Button_1.grid(row=7,column=0, sticky=E)
root.mainloop()
# END OF SCRIPT
我做错了什么?
答案 0 :(得分:2)
您需要将后端从 Qt4 切换为 Tk 。您目前正在做的是从基于Tkinter的应用程序打开基于Qt的绘图窗口。这项工作但不能互操作。
在顶部的某处(不在saveentry
函数中)插入以下行:
plt.switch_backend('TkAgg') # TkAgg (instead Qt4Agg)