import os, pygame, gtk, drawxos class multiply: """Display the pygame screen inside the pygtk window""" window = gtk.Window() yadjust = gtk.Adjustment(3,0,12,1,1,1) xadjust = gtk.Adjustment(2,0,12,1,1,1) def __init__(self): #set adjustments and cooresponding sliders yslider = gtk.VScale(self.yadjust) xslider = gtk.HScale(self.xadjust) yslider.set_size_request(100,30) xslider.set_size_request(100,30) yslider.set_digits(0) xslider.set_digits(0) self.yadjust.connect('value-changed',self.updateXOs) self.xadjust.connect('value-changed',self.updateXOs) #create the drawing area for pygame pygameDA = gtk.DrawingArea() pygameDA.set_size_request(800,600) pygame_hack(pygameDA) box = gtk.VBox() hbox = gtk.HBox() hvbox = gtk.VBox() self.window.add(box) box.pack_start(pygameDA) #No resize #DON'T CHANGE THE ORDER ORDER ACTUALLY MATTERS hvbox.pack_start(yslider,False,False) hvbox.pack_start(xslider,False,False) hbox.pack_start(hvbox,False,False) box.pack_start(hbox,False,False) self.window.set_size_request(1280,800) self.window.show_all() def updateXOs(self,widget): screen = drawxos.drawXOs(pygame.display.set_mode((800,600)),pygame.image.load("XO.png"),self.xadjust.get_value(),self.yadjust.get_value()) def pygame_hack(widget): def callback(widget, *args): handle = widget.window.xid size = widget.size_request() os.environ['SDL_WINDOWID'] = str(handle) pygame.display.init() pygame.dispaly.set_mode(size) widget.connect('map-event',callback) def main(): m = multiply() gtk.main() if __name__ == '__main__':main()