rootに2Dボタン、3DボタンとENDブタンがあります。2Dと3Dをクリックすると、それぞれ対応したデータを処理して、plt.plotの2D、3Dグラフが表示させます。そして、ENDボタンで、終了したいですが、rootを終了できましたが、プッシュアウトした(plt.show())グラムが残りました。
どうすれば、ENDボタンで、グラムを含めて、一斉に終了できますか?教えてください。よろしくお願いします。
import tkinter,os import matplotlib.pyplot as plt from tkinter import * from tkinter import ttk #終了ブタン def button_end(): root.quit() root.destroy() #2Dグラフ def button_2d(): global raw_data,second,data_name if second ==None or not second.winfo_exists(): second = tkinter.Toplevel() second.title("2d") second.geometry() x=[1,2,3,4,5] y=[2,3,1,4,8] plt.plot(x,y) second.destroy() plt.show() #3Dグラフ def button_3d(): global raw_data,third,data_name if third ==None or not third.winfo_exists(): third = tkinter.Toplevel() third.title("3d") third.geometry() fig = plt.figure(figsize=(6,6)) ax = fig.add_subplot(111, projection='3d') x=[1,2,3,4,5] y=[8,4,1,2,1] z=[2,4,6,8,10] ax.plot(x, y, z) third.destroy() plt.show() if __name__ == " __main__": def main(): pass root = tkinter.Tk() root.title("test") root.geometry("+0+0") second = None third = None frame_top = Frame(root, bd=4, relief=GROOVE) # widgetの設定 btn_end = ttk.Button(frame_top,text='END',command = button_end) btn_2d = ttk.Button(frame_top,text='2D', command = button_2d) btn_3d = ttk.Button(frame_top,text='3D', command = button_3d) # widgetの配置 frame_top.grid (row = 0, column = 0, sticky = W) #in root btn_2d.grid(row=0,column=1,sticky = W) #in frame_top btn_3d.grid(row=0,column=2,sticky = N) #in frame_top btn_end.grid(row=0,column=3,sticky = N) #in frame_top root.mainloop()
環境:Win10、Python3.8
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/16 09:35
2021/09/16 23:58
2021/09/17 02:16