Using pygame features in Tkinter
This works on Linux. If you're lucky, it might work on other operating systems as well.
import Tkinter as tkimport osw, h = 500, 200# Add a couple widgets. We're going to put pygame in `embed`.root = tk.Tk()embed = tk.Frame(root, width=w, height=h)embed.pack()text = tk.Button(root, text='Blah.')text.pack()# Tell pygame's SDL window which window ID to use os.environ['SDL_WINDOWID'] = str(embed.winfo_id())# The wxPython wiki says you might need the following line on Windows# (http://wiki.wxpython.org/IntegratingPyGame).#os.environ['SDL_VIDEODRIVER'] = 'windib'# Show the window so it's assigned an ID.root.update()# Usual pygame initializationimport pygame as pgpg.display.init()screen = pg.display.set_mode((w,h))pos = 0while 1: # Do some pygame stuff screen.fill(pg.Color(0,0,0)) pos = (pos + 1) % screen.get_width() pg.draw.circle(screen, pg.Color(255,255,255), (pos,100), 30) # Update the pygame display pg.display.flip() # Update the Tk display root.update()