Basic TKinter GUI format in python

Though there are many ways to format your gui code, the following seems to work well for me. It is not pretty, but the important thing is just how I laid it out.

Basically, I like making a subclass of frame for almost everything.

#!/usr/bin/env python

from Tkinter import *
import time
import tkMessageBox
import tkFileDialog
import tkSimpleDialog


class Demo(Frame):
  def __init__(self, parent=None):
    Frame.__init__(self, parent)
    self.pack()
    Label(self, text="Basic Demonstration").pack()

    errorbutton = Button(self, text="Error", command=self.showerror)
    errorbutton.bind('', self.showerroronrc) #on hover
    errorbutton.pack(side=TOP, fill=BOTH)
 
    askbutton = Button(self, text="Ask", command=self.ask)
    askbutton.pack(side=TOP, fill=BOTH)


    openbutton = Button(self, text="Open", command=self.open)
    openbutton.pack(side=TOP, fill=BOTH)

    querybutton = Button(self, text="Input", command=self.query)
    querybutton.pack(side=TOP, fill=BOTH)

    Label(self, text="Name").pack(side=LEFT)

    checkoptions = ["check1", "check2", "check3"]
    for i in checkoptions:
      checkbox = Checkbutton(self, text=i, command=self.checkbox)
      checkbox.pack(side=TOP)

    #this is used in the showerror function
    self.ent = Entry(self)
    self.ent.pack(side=RIGHT, fill=X)

  def showerror(self):
    msg = "He's dead, " + self.ent.get()
    tkMessageBox.showerror('Error!', msg)

  def showerroronrc(self, event):
    print "stop hovering!"

  def ask(self):
    self.ynanswer = tkMessageBox.askquestion("question", "Do you like me?")   
    if self.ynanswer == "no":
      print "fine, fuck you, buddy."
      Frame.quit(self)

  def open(self):
    file = tkFileDialog.askopenfilename()
    print file

  def query(self):
    myfloat = tkSimpleDialog.askfloat("Entry", "Enter a number")
    print myfloat 

  def checkbox(self):
    print "Don't check on me, bitch"

if __name__ == '__main__':
  root=Tk()
  Demo(root).pack()

  img = PhotoImage(file="./grass.gif")
  Button(root, image=img).pack(side=RIGHT)
  mainloop()