I'm specifically asking about binding a keyboard keystroke to a button in a GUI. Originally I planned to bind the keystroke to the GUI button itself, but that seemed impossible, and potentially unwise after I considered it later. Is this the proper (pythonic) way to bind a keyboard key and GUI button? ## start.py print 'start' #from tkinter import * from Tkinter import * import os from PIL import ImageTk, Image class MyClass: '''This is my class.''' imgpath = '/Users/user/Dropbox/Camera Uploads' imgfile = 'susshi.jpg' #imgfilepath = os.path.join(self.imgpath, self.imgfile) imgfilepath = os.path.join(imgpath, imgfile) def __init__(self,master): print 'in __init__' # Create and load a frame into the tk (tkinter) window. frame = Frame(master) frame.pack() # Create and load two buttons in to the above-created frame. self.button = Button(frame, text="QUIT", fg="red", command=quit) self.button.pack(side=LEFT) self.slogan = Button(frame, text="Hello", command = self.f) self.slogan.pack(side=RIGHT) # Bind a key to each button from above. master.bind('q', quit) master.bind('f', self.f) # Open the image, resize it... self.image = Image.open(self.imgfilepath) self.image.thumbnail((600,600)) # Make a tkinter-friendly image object ... self.display_image = ImageTk.PhotoImage(self.image) # Make a tkinter canvas, plug in the image, and pack the canvas. self.canvas = Canvas(master, bg='red') self.canvas.create_image(0,0, image=self.display_image, anchor="nw") self.canvas.pack(fill=BOTH, expand=1) ### FIXME: Set canvas focus! def f(self, event=None): print 'in f()' return 'hello world' def get_image_list(self): pass def next_image(self): pass def previous_image(self): pass def load_image(self): #stub pass def update_image(self): pass root = Tk() abc = MyClass(root) root.mainloop() print 'abc has been defined' print '"abc.f()" returns "%s"' % abc.f() #print str(abc.f) #print repr(abc.f) print 'end' The intention of the project is to make a simple image viewer in python, with buttons in the GUI for basic navigation functions, and keys mapped to those same functions.