Foros del Web » Programando para Internet » Python »

Crear un buffer de memoria en GTK+Glade

Estas en el tema de Crear un buffer de memoria en GTK+Glade en el foro de Python en Foros del Web. Hola. Quiero hacer la interfaz de un programa en glade, y una de los elementos label quiero que cambie su valor. Creo que se puede ...
  #1 (permalink)  
Antiguo 27/09/2010, 08:04
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 3 meses
Puntos: 3
Crear un buffer de memoria en GTK+Glade

Hola. Quiero hacer la interfaz de un programa en glade, y una de los elementos label quiero que cambie su valor. Creo que se puede hacer con un buffer, pero no se cómo hacerlo. Si no se puede hacer con un label también vale un entry
  #2 (permalink)  
Antiguo 27/09/2010, 11:00
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Crear un buffer de memoria en GTK+Glade

Talvez te interese el metodo set_text de Label.
  #3 (permalink)  
Antiguo 28/09/2010, 12:22
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Crear un buffer de memoria en GTK+Glade

Estoy usando un archivo xml glade y así no funciona. Tiene que ser de otra forma
esto es lo que tengo:
self.label1 = self.wTree.get_widget("label1")
self.label1.set_text("posix")
  #4 (permalink)  
Antiguo 28/09/2010, 13:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Crear un buffer de memoria en GTK+Glade

Ok ya lei tu pregunta y veo que no sabes lo que quieres.

1.- Quieres que el label cambie cuando ocurra un evento?
2.- O quieres ponerle otro texto a un label en vez del que biene por default?
3.- Como supones que lo harías con buffer?
4.- Seria de ayuda que pusieras algo de tu parte como código, descripción mas detallada del problema, parte del archivo glade donde crees que tengas problema, etc.

De cualquier manera me adelante y prepare un ejemplo con eventos:
Código Python:
Ver original
  1. import pygtk
  2. pygtk.require('2.0')
  3. import gtk
  4. from gtk import glade
  5.  
  6. class Hola:
  7.     def __init__(self):
  8.         self.wTree = glade.XML("hola.xml")
  9.         self.window = self.wTree.get_widget("window1")
  10.         self.window.show()
  11.         self.window = self.wTree.get_widget("window1")
  12.         if(self.window):
  13.             self.window.connect("destroy", gtk.main_quit)
  14.            
  15.         events = {"on_button1_clicked":self.on_button1_clicked}
  16.         self.wTree.signal_autoconnect(events)
  17.  
  18.     def on_button1_clicked(self, *args):
  19.         self.wTree.get_widget("entry1").set_text("Hola")
  20.  
  21.            
  22. if __name__ == '__main__':
  23.     h = Hola()
  24.     gtk.main()

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <glade-interface>
  3.   <!-- interface-requires gtk+ 2.20 -->
  4.   <!-- interface-naming-policy project-wide -->
  5.   <widget class="GtkWindow" id="window1">
  6.     <signal name="destroy_event" handler="on_window1_destroy_event" swapped="no"/>
  7.     <child>
  8.       <widget class="GtkVBox" id="vbox1">
  9.         <property name="visible">True</property>
  10.         <child>
  11.           <widget class="GtkEntry" id="entry1">
  12.             <property name="visible">True</property>
  13.             <property name="can_focus">True</property>
  14.             <property name="invisible_char"></property>
  15.           </widget>
  16.           <packing>
  17.             <property name="position">0</property>
  18.           </packing>
  19.         </child>
  20.         <child>
  21.           <widget class="GtkButton" id="button1">
  22.             <property name="label" translatable="yes">button</property>
  23.             <property name="visible">True</property>
  24.             <property name="can_focus">True</property>
  25.             <property name="receives_default">True</property>
  26.             <property name="use_action_appearance">False</property>
  27.             <signal name="clicked" handler="on_button1_clicked" swapped="no"/>
  28.           </widget>
  29.           <packing>
  30.             <property name="position">1</property>
  31.           </packing>
  32.         </child>
  33.       </widget>
  34.     </child>
  35.   </widget>
  36. </glade-interface>
  #5 (permalink)  
Antiguo 28/09/2010, 13:44
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Crear un buffer de memoria en GTK+Glade

la idea es que al seleccionar un archivo con "file chooser button" cambie por el archivo seleccionado
El programa que estoy creando es para instalar paquetes en linux .nho. Necesitan de bash, y lo hago con "import commands". Por otra parte, quiero que la interfaz gráfica muestre el paquete seleccionado, y luego lo instale. Lo de instalar se como hacerlo, pero necesito primero lo otro.

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: iso-8859-15 -*-
  3. import pygtk
  4. pygtk.require('2.0')
  5. import gtk
  6. from gtk import glade
  7. class pynho:
  8.     def __init__(self):
  9.         #Cargamos el archivo glade en xml
  10.         self.wTree = glade.XML('pynho.glade')
  11.         #Obtenemos señales
  12.         signals = { "on_button1_clicked" : self.on_button1_clicked, #botón instalar
  13.                 "on_about1_activate" : self.on_about1_activate, #botón acerca de...
  14.                 "on_archivocerrar_activate" : gtk.main_quit, #botón cerrar menú archivo
  15.                 #"Otra señal" : self.otraseñal
  16.                  }
  17.         #las conectamos
  18.         self.wTree.signal_autoconnect(signals)
  19.        
  20.         #obtenemos el widgwt ventana
  21.         self.window = self.wTree.get_widget("window1")
  22.         self.entry1 = self.wTree.get_widget("entry1")
  23.         self.label1 = self.wTree.get_widget("label1")
  24.         self.label1.set_text("posix")
  25.         self.window.show()
  26.         if(self.window):
  27.             self.window.connect("destroy", gtk.main_quit)
  28.     #definimos la función para el botón, y nos abre "window2"
  29.     def on_button1_clicked(self, widget):
  30.         self.window2 = self.wTree.get_widget("window2")
  31.         self.window2.show()
  32.     def on_about1_activate(self, widget):
  33.         self.windowabout = self.wTree.get_widget("windowabout")
  34.         self.windowabout.show()
  35.     def on_archivocerrar_activate(self, widget):
  36.         self.window.connect.main_quit
  37. if __name__ == '__main__':
  38.     nhopkg = pynho()
  39.     gtk.main()

Etiquetas: buffer, memoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.