title: Tkinter button command activates upon running program?
body: <p>I'm trying to make a build retrieval form, and seem to have issues with the buttons... I'm a novice at Python/tkinter GUI programming (and GUI programming in general) and borrowed the skeleton of a Hello World app, and sorta built off that.</p>
  
  <p>In the code below, I've set the "command" option of my Browse button to call my class's internal get_dir() function when it's clicked.  However, as soon as I attempt to run the app, the get_dir() function is called and I'm prompted to choose a directory.  Any ideas why this happens, and what I can do to make it behave properly?</p>
  
  <pre><code>from Tkinter import *
  import tkFont
  from tkFileDialog import askdirectory
  
  class App:
  
      def __init__(self, master):
  
          fontHead = tkFont.Font(family="Arial", size=10, weight=tkFont.BOLD)
          fontBold = tkFont.Font(family="Arial", size=8, weight=tkFont.BOLD)
          fontReg =  tkFont.Font(family="Arial", size=8)
  
          frameN = Frame(master)
          frameN.grid(row=0,padx=5,pady=5)
  
          frameXBH = Frame(frameN)
          frameXBH.grid(row=0,columnspan=5,padx=5)
  
          Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=20,background="#cccccc").grid(row=0)
          Label(frameXBH, text="Xbox 360",font=fontBold,width=9).grid(row=0,column=1)
          Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=440,background="#cccccc").grid(row=0,column=2,sticky="WE")
  
          Label(frameN, text="Destination Path:",font=fontReg).grid(row=1,sticky="W")
          xbPath = Entry(frameN,width=30,font=fontReg)
          xbPath.grid(row=1,column=1,sticky="W")
          xbBrowse = Button(frameN,text="Browse...",font=fontReg,command=self.get_dir(xbPath))
          xbBrowse.grid(row=1,column=2,sticky="W")
          xbRel = Checkbutton(frameN,text="Release",font=fontReg)
          xbRel.grid(row=1,column=3,sticky="W")
          xbShip = Checkbutton(frameN,text="Ship",font=fontReg)
          xbShip.grid(row=1,column=4,sticky="W")
  
          Canvas(frameN,borderwidth=1,relief="groove",width=550,height=0).grid(row=2,columnspan=5,pady=10)
  
          # SAVE AND CANCEL
  
          btnSave = Button(frameN,text="Save",width=10)
          btnSave.grid(row=3,column=3,sticky="E")
  
          btnCancel = Button(frameN,text="Cancel",width=10)
          btnCancel.grid(row=3,column=4,sticky="W")
  
      def get_dir(self,box):
          tmp = askdirectory(mustexist=1,title="Please select a destination")
          tmp = tmp.replace("/","\\")
          box.delete(0,END)
          box.insert(0,tmp)
  
  root = Tk()
  root.resizable(0,0)
  
  app = App(root)
  
  root.mainloop()
  </code></pre>