2016-10-26 27 views
0

私は単純なTkinter、MatplotlibのPythonプログラムを持っています。 Windows 10を使用していて、ウィンドウを閉じるまでプログラムは正常に動作します。スクリプトを再起動すると、ランタイムエラーが発生します(画像参照)。私はその後、私は、アプリケーションサポートチームだということを実現し、「詳細については、アプリケーションのサポートチームにお問い合わせ」しようとした....スクリプトの再起動時のPythonランタイムエラー

enter image description here

#!/usr/bin/env python 
import matplotlib 
import time 
matplotlib.use('TkAgg') 

from numpy import arange, sin, pi 
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg 
from matplotlib.figure import Figure 
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
from tkFileDialog import * 

import sys 
import Tkinter as Tk 


def destroy(e): 
    sys.exit() 

class Window(): 
    def __init__(self): 

     self.root = Tk.Tk() 
     self.root.wm_title("Embedding in TK") 
     self.QuitButton = None 
     self.UploadButton = None 
     self.filepath = None 
     self.fig = None 
     self.canvas = None 
     self.image = None 




    def showWindow(self): 
     self.root.mainloop() 

    def addQuitButton(self, ButtonText): 
     if self.QuitButton is None: 
      self.QuitButton = Tk.Button(master = self.root, text = ButtonText, command = self.closeWindow) 
      self.QuitButton.pack(side=Tk.BOTTOM) 

    def addUploadButton(self, ButtonText): 
     if self.UploadButton is None: 
      self.UploadButton = Tk.Button(master = self.root, text = ButtonText, command = self.showFileDialog) 
      self.UploadButton.pack(side=Tk.BOTTOM) 

    def showFileDialog(self): 
     print 'oh yeah' 
     if self.filepath is None: 
      print 'Oh no...' 
      self.filepath = askopenfilename(parent=self.root) 
      print self.filepath 
     self.image = mpimg.imread(self.filepath) 
     self.buildFigure() 
     self.showCanvas() 

    def buildFigure(self): 
     self.fig = plt.figure() 
     self.im = plt.imshow(self.image) 


    def showCanvas(self): 
     self.canvas = FigureCanvasTkAgg(self.fig, master=self.root) 
     self.canvas.show() 
     self.canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) 



    def closeWindow(self): 
     #sys.exit() 
     self.root.quit() 
     self.root.destroy() 





if __name__== "__main__": 
    base = Window() 
    base.addQuitButton("Quit") 
    base.addUploadButton("Upload") 
    base.showWindow() 

答えて

0

私はアイドルが問題であることがわかった、Iドンものの理由は分かりません。コマンドラインでスクリプトを実行すると問題はありません。

関連する問題