lo siento olvide poner asunto
From: ailurus.fulg...@hotmail.com
To: python-es@python.org
Subject: 
Date: Mon, 3 Sep 2012 20:50:17 -0500





hola a todos
ya les había mencionado antes intentaba agregar botones e un gtk.hbox con la 
ventana funcionando y tenia problemas
haciendo mas pruebas encontré algo curioso
hice dos ejemplos para mostrarles
en el primero tengo un botón para cambiar una imagen insertada por otra, 
funciona, borra una imagen y pone otra en su lugar
en el segundo intento hacer lo mismo pero no funciona. no puedo agregar la 
imagen y quitarla. puedo borrar botones pero no poner nuevos
los ejemplos son casi iguales, no veo la razón por la que uno falla

en el primero ya hay una imagen insertada, la retiro le cambio el archivo de 
imagen y la pongo otra ves, todo bien
en el segundo ejemplo esto se ve mejor, puedo retirar los objetos que declare 
en el constructor, y volverlos a poner, tanto en botones como imágenes
pero si intento agregar una imagen o botón nuevo, estos no aparecen, no recibo 
mensajes de error

estuve batallando hasta darme cuenta d eso XD
el problema es solo con los widgets que no estaban ahí antes de llamar a 
gtk.main()
alguien sabe como hago k aparezcan esos botones?

por cierto, gracias a la comunidad k siempre ayuda en lo k esta a su alcance 

ejemplo 1
#!/usr/bin/env python

import sys

import gobject
import pango
# Dirty path adjustment to look for pygtk 2.9 instead of pygtk 2.8
# This needs pygtk 2.9 installed.
sys.path[:0] = ['/usr/local/lib/python2.4/site-packages/gtk-2.0']
import pygtk
pygtk.require('2.0')
import gtk
from gtk import gdk

win = gtk.Window()
image = gtk.Image()
hbox0=gtk.HBox(False,0)
def cambio(event):
    hbox0.remove(image)
    image.set_from_file("zorrita.png")
    hbox0.pack_start(image)


def main(args):
    #win = gtk.Window()
    def mapeoteclas(self,event,data=None):
        #print event.keyval
        vbox1.set_visible(not vbox1.get_visible())
        if event.keyval == gtk.keysyms.Escape:
            gtk.main_quit()
            
            
    win.set_title("PandaViwer")
    win.connect('delete-event', gtk.main_quit)
    win.connect("destroy",gtk.main_quit)    
    win.add_events(gdk.BUTTON_PRESS_MASK)
    win.connect("key_release_event", mapeoteclas)
    image.set_from_file("red.jpg")
    image.show()
    
    btn1 = gtk.Button(" x ")
    btn1.connect("clicked",gtk.main_quit)
    btn2 = gtk.Button("cambio")
    btn2.connect("clicked",cambio)
    #hbox0=gtk.HBox(False,0)
    vbox1=gtk.VBox(False,0)    
    vbox1.pack_start(btn1,False,False,10)
    vbox1.pack_start(btn2,False,False,10)
    hbox0.pack_end(vbox1,False,False,10)
    hbox0.pack_start(image)
    win.add(hbox0)
    win.show_all()
    gtk.main()
    
    

    return True

if __name__ == '__main__':
    sys.exit(main(sys.argv))    


ejemplo 2

#!/usr/bin/env python

import sys
import gobject
import pango
from twisted.python._epoll import PRI
sys.path[:0] = ['/usr/local/lib/python2.4/site-packages/gtk-2.0']
import pygtk
pygtk.require('2.0')
import gtk
from gtk import gdk
import cairo

if gtk.pygtk_version < (2,9,0):
    print "PyGtk 2.9.0 or later required"
    raise SystemExit
supports_alpha = False
win = gtk.Window()
hbox = gtk.HBox(False,0)
vbox = gtk.VBox(False,0)
Quitar = gtk.Button("quitar")
imagen = gtk.Image()
imagen.set_from_file("folder.png")
nuevo1 = gtk.Button("nuevo1")

def ejemplo(widget,event,data="....."):
    print data
    
def quitar(event):
    hbox.remove(Quitar)
def agregar(event):
    hbox.pack_start(Quitar,False,False,0)#este si funciona        
    hbox.pack_start(nuevo1,False,False,0)#aqui es donde no agrega nada
    nuevo2 = gtk.Button("nuevo2")
    hbox.pack_start(nuevo2,False,False,0)
    
    print "agregado"

def quitarimagen(event):
    vbox.remove(imagen)

def agregarimagen(event):        
    vbox.pack_start(imagen,False,False,0)#aqui es donde no agrega nada
    imagen2 = gtk.Image()
    imagen2.set_from_file("info.xpm")
    vbox.pack_start(imagen2,False,False,0)   
    print "agregada imagen"


    
def main(args):
    win.set_title('Alpha Demo')
    win.connect('delete-event', gtk.main_quit)    
    win.add_events(gdk.BUTTON_PRESS_MASK)
    win.set_default_size(920,460)    
    Agregarimagen = gtk.Button("agregar imagen")
    Agregarimagen.connect("clicked",agregarimagen)
    Quitarimagen = gtk.Button("quitar imagen")
    Quitarimagen.connect("clicked",quitarimagen)
    hbox.pack_start(Agregarimagen,False,False,20)
    hbox.pack_start(Quitarimagen,False,False,20)
    
    
    Agregar = gtk.Button("agregar")
    Agregar.connect("clicked",agregar)    
    hbox.pack_start(Agregar,False,False,20)    
    #Quitar = gtk.Button("quitar")
    Quitar.connect("clicked",quitar)
    hbox.pack_start(Quitar,False,False,20)
    #vbox = gtk.VBox(False,0)
    vbox.pack_start(hbox,False,False,0)    
    vbox.pack_start(imagen,False,False,0)
    win.add(vbox)
    win.show_all()
    gtk.main()
    
    return True

if __name__ == '__main__':
    sys.exit(main(sys.argv))    

                                                                                
  
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a