通过Tkinter关闭/打开Plot

时间:2018-04-13 09:44:06

标签: python tkinter

我试图用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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要将后端 Qt4 切换为 Tk 。您目前正在做的是从基于Tkinter的应用程序打开基于Qt的绘图窗口。这项工作但不能互操作。

在顶部的某处(不在saveentry函数中)插入以下行:

plt.switch_backend('TkAgg')  # TkAgg (instead Qt4Agg)