rendered paste body#!/usr/bin/env pythonimport gtkimport gnomecanvasfrom random import randomclass CanvasExample: def __init__(self): self.width = 400 self.height = 400 self.all = [] self.colors = ("red", "yellow", "green", "cyan", "blue", "magenta") def change_item_color(self, item): # Pick a random color from the list. n = int(random() * len(self.colors)) - 1 item.set(fill_color = self.colors[n]) def item_event(self, widget, event=None): if event.type == gtk.gdk.BUTTON_PRESS: if event.button == 1: # Remember starting position. self.remember_x = event.x self.remember_y = event.y return True elif event.button == 3: # Destroy the item. widget.destroy() return True elif event.type == gtk.gdk._2BUTTON_PRESS: #Change the item's color. self.change_item_color(widget) return True elif event.type == gtk.gdk.MOTION_NOTIFY: if event.state & gtk.gdk.BUTTON1_MASK: # Get the new position and move by the difference new_x = event.x new_y = event.y widget.move(new_x - self.remember_x, new_y - self.remember_y) self.remember_x = new_x self.remember_y = new_y return True elif event.type == gtk.gdk.ENTER_NOTIFY: # Make the outline wide. widget.set(width_units=3) return True elif event.type == gtk.gdk.LEAVE_NOTIFY: # Make the outline thin. widget.set(width_units=1) return True return False def add_object_clicked(self, widget, event=None): """ ******************* AKI!!!!!!!!!!!!!!!!!!!!! """ #gdkimage = gtk.gdk.GdkImlib.Image("5b.bmp")# i = gtk.Image()# i.set_from_file("5b.png") im = gnomecanvas.GdkImlib.Image("5b.png") w = self.acanvas.root().add('GnomeCanvasImage', image=im, width=70, height=105) w.connect("event", self.item_event) self.all.append(w) """ *********************** AKI!!!!!!!!!!!!!!!! """ def main(self): win = gtk.Window() win.connect('destroy', lambda q: gtk.main_quit()) win.set_title('ButIRC Fronted') win.set_geometry_hints(None,520,420,520,420) vbox = gtk.VBox() win.add(vbox) vbox.show() # Some instructions for people using the example: label = gtk.Label("Drag - move object.\n" + "Double click - change colour\n" + "Right click - delete object") vbox.pack_start(label, expand=False) label.show() # Creamos el tablero de juego self.acanvas = gnomecanvas.Canvas(aa=True) self.acanvas.set_size_request(self.width, self.height) self.acanvas.set_scroll_region(0,0, self.width, self.height) vbox.pack_start(self.acanvas) self.acanvas.show() # Creamos los botones hbox = gtk.HButtonBox() vbox.pack_start(hbox, expand=False) hbox.show() b = gtk.Button("Boton 1") b.connect("clicked", self.add_object_clicked) hbox.pack_start(b) b.show() b = gtk.Button("Boton 2") b.connect("clicked", lambda q: gtk.main_quit()) hbox.pack_start(b) b.show() b = gtk.Button("Quit") b.connect("clicked", lambda q: gtk.main_quit()) hbox.pack_start(b) b.show() win.show()if __name__ == '__main__': c = CanvasExample() c.main() gtk.main()