title: Tkinter runtime error maximum recursion when open a window
body: <p>I actually have a big problem.
  I already have a tkinter window and I want to open an other.</p>
  
  <pre><code>import Tkinter
  from Tkinter import *
  import threading, time
  from PIL import Image, ImageTk
  from record_pd import *
  
  class Gui_Record(Tkinter.Tk):
  
      def __init__(self, tkroot):
          self.root = Tk()
          self.root.title("Enregistreur")
          #self.root.geometry()                                                                                                                                                                                                                
          self.root.geometry("%dx%d+%d+%d" % (500, 70, 400, 300))
          self.root.c = Canvas(tkroot, bg='black')
          self.root.c.pack(fill=BOTH, expand=YES)
          self.initialize()
          self.recorder = RecordPd(tkroot)
          self.recorder.init_recorder()
  
      def initialize(self):
          #self.root.grid()                                                                                                                                                                                                                    
  
          self.root.resizable(False, False)
  
          self.Imgtmp = PhotoImage(file="img/record.png")
          self.imgclear = PhotoImage(file="img/clear.png")
  
          self.root.title = Tkinter.Label(self.root, text="Enregistreur Orgue Sensoriel", bg="black", fg="white", font=("Helvetica", 16))
  
          self.root.title.pack()
  
          self.root.button = Tkinter.Button(self, command=self.OnButtonClick, bg="black", bd=0)
  
          self.root.button.config(highlightthickness=0)
          self.root.button.config(activebackground="black")
  
          self.root.button.config(image=self.Imgtmp)
          self.root.button.pack()
  
          self.root.bind("&lt;Destroy&gt;", self._onDestroy)
          self.resume = True
          self.activate = False
  
  
      def setTkroot(self, tkroot):
          self.tkroot = tkroot
  
      def _onDestroy(self, e):
          self.resume = False
          self.recorder.stop_recording()
  
  
      def OnButtonClick(self):
         if (self.activate == False):
              self.resume = True
              self.recorder.open_wav()
              self.recorder.start_recording()
              thread = threading.Thread(target=self.threadClignoter)
              thread.start()
              self.activate = True
              print("In recording..")
         else:
              self.stopThread()
              self.recorder.stop_recording()
              self.activate = False
  
      def threadClignoter(self):
        isVisible = True
  
        while self.resume:
              if isVisible:
                  clr = self.imgclear
              else:
                  clr = self.Imgtmp
  
              self.root.button.config(image=clr)
              isVisible = not isVisible
              time.sleep(0.5)
  
      def stopThread(self):
          print("Record done.")
          self.resume = False
          self.root.button.config(image=self.Imgtmp)
  </code></pre>
  
  <p>When I call my object I do:</p>
  
  <pre><code>rec = Gui_Record(self.tkroot)
  rec.mainloop()
  </code></pre>
  
  <p>When I launch a single window it's okay. But when i add my new window to my parent window it happened that:</p>
  
  <pre><code>traceback (most recent call last):
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1489, in __call__
      return self.func(*args)
    File "/home/naqued/Documents/assembla/backup/naqued-s-space/stido/gui_stido.py", line 139, in launch_recorder
      app = Gui_Record(self.tkroot)
    File "/home/naqued/Documents/assembla/backup/naqued-s-space/stido/record_gui.py", line 18, in __init__
      self.initialize()
    File "/home/naqued/Documents/assembla/backup/naqued-s-space/stido/record_gui.py", line 35, in initialize
      self.root.button = Tkinter.Button(self, command=self.OnButtonClick, bg="black", bd=0)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2128, in __init__
      Widget.__init__(self, master, 'button', cnf, kw)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2049, in __init__
      BaseWidget._setup(self, master, cnf)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2022, in _setup
      if not master:
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1848, in __getattr__
      return getattr(self.tk, attr
  .... ... ... ... .. .. ... 
    return getattr(self.tk, attr)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1848, in __getattr__
      return getattr(self.tk, attr)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1848, in __getattr__
      return getattr(self.tk, attr)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1848, in __getattr__
      return getattr(self.tk, attr)
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1848, in __getattr__
      return getattr(self.tk, attr)
  RuntimeError: maximum recursion depth exceeded while calling a Python object
  </code></pre>
  
  <p>I don't do recursion on my code.
  I don't know what happened and didn't find anything in the web.</p>