Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/05/2013, 16:36
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: gtk.combo_box_new_text()

Bueno tienes varios errores, pero principalmente es por que nunca enlazas tu combobox a un evento.

Código Python:
Ver original
  1. import pygtk
  2. pygtk.require('2.0')
  3. import gtk
  4. import os
  5.  
  6. class Prueba:
  7.  
  8.     path = '/ruta/'
  9.        
  10.     def __init__(self):
  11.         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
  12.         self.window.set_resizable(True)
  13.         self.window.set_title("Temas")
  14.         self.window.set_position(gtk.WIN_POS_CENTER)
  15.         self.window.set_border_width(0)
  16.         self.window.set_size_request(550, 600)
  17.         self.window.connect("delete_event", self.delete_event)
  18.         self.window.connect("destroy", self.destroy)
  19.        
  20.         self.fixed = gtk.Fixed()
  21.        
  22.         text = next(os.walk(self.path))[1]
  23.         text.sort(key=lambda x: x.upper())
  24.         combox_themas = gtk.combo_box_new_text()
  25.         combox_themas.set_size_request(180, 35)
  26.         for t in text:  
  27.             combox_themas.append_text(t)
  28.        
  29.         self.fixed.put(combox_themas, 320, 80)
  30.         combox_themas.show()
  31.         combox_themas.connect('changed', self.changed_cb)
  32.        
  33.         self.window.add(self.fixed)
  34.         self.window.show_all()
  35.         self.window.show()
  36.  
  37.     def changed_cb(self, combobox):
  38.         if combobox.get_active_text():
  39.             filename = self.path + combobox.get_active_text() + '/background.png'
  40.             if os.path.exists(filename):
  41.                 file_buffer = gtk.gdk.pixbuf_new_from_file_at_size(filename, 417, 270)
  42.                 self.image_theme = gtk.image_new_from_pixbuf(file_buffer)
  43.                 self.fixed.put(self.image_theme, 71, 163)
  44.                 self.image_theme.show()
  45.             else:
  46.                 # Put some error here
  47.                 pass
  48.  
  49.  
  50.     def delete_event(self, widget, event, data=None):
  51.         return False
  52.  
  53.     def destroy(self, widget, data=None):
  54.         gtk.main_quit()
  55.        
  56. def main():
  57.     gtk.main()
  58.     return 0
  59.  
  60. if __name__ == "__main__":
  61.     Prueba()
  62.     main()