Foros del Web » Programando para Internet » Python »

Como obtener el texto de gtk Buffer

Estas en el tema de Como obtener el texto de gtk Buffer en el foro de Python en Foros del Web. Holaaa! Me han ayudado mucho por este medio y vengo con otra pregunta sobre Python y GTK2. Estoy tratando de entender el funcionamiento de los ...
  #1 (permalink)  
Antiguo 08/11/2011, 09:37
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Como obtener el texto de gtk Buffer



Holaaa!
Me han ayudado mucho por este medio y vengo con otra pregunta sobre Python y GTK2.
Estoy tratando de entender el funcionamiento de los Buffer pero lo veo muy complicado para mi que soy novata. Encontre este ejemplo en este foro pero no lo pude adaptar a mi programa...

[URL="http://www.forosdelweb.com/f130/gtk-text-buffer-gtk-textiter-895839/"]http://www.forosdelweb.com/f130/gtk-text-buffer-gtk-textiter-895839/[/URL]

Necesito agarrar el texto de un gtk.TextView y este lo introduzca en un comando del shell

Aqui les pongo mi codigo! Espero que me puedan orientar

Agradezco mucho la ayuda


Código Python:
Ver original
  1. #-*- coding: UTF-8 -*-
  2.  
  3. import pygtk
  4. pygtk.require('2.0')
  5. import gtk
  6. import os
  7.  
  8.  
  9. textbuffer = 0
  10.  
  11. class PruebaBuffer:
  12.    
  13.     def __init__(self):
  14.  
  15.         def ejecutar(self, widget, data=None):            
  16.             comando = os.system('comando --mensaje="'+textbuffer+'"')
  17.        
  18.        
  19.         window = gtk.Window()
  20.         window.connect('destroy', lambda w: gtk.main_quit())
  21.         window.set_size_request(500,400)
  22.         tablec = gtk.Table(10,10,False)
  23.        
  24.  
  25.         #-------------------Buffer------------------#
  26.         #definimos el scroll
  27.         scrolledwindow = gtk.ScrolledWindow()
  28.         scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
  29.  
  30.         #Marco del cuadro de mensaje
  31.         marco = gtk.Frame("Mensaje")
  32.        
  33.         #Alineacion del cuadro del cuadro del mensaje
  34.         alineacion = gtk.Alignment(xalign=0.5, yalign=1.0, xscale=1.0, yscale=1.0)
  35.  
  36.         #text view
  37.         textview = gtk.TextView()
  38.         global textbuffer_emp
  39.         textbuffer = textview.get_buffer()
  40.         start, end = textbuffer.get_bounds()
  41.         print textbuffer
  42.            
  43.         scrolledwindow.add(textview)
  44.         alineacion.add(scrolledwindow)
  45.         marco.add(alineacion)
  46.         marco.show()
  47.         textview.show()
  48.         scrolledwindow.show()
  49.         alineacion.show()
  50.  
  51.         tablec.attach(marco, 0,4,0,9)
  52.         tablec.attach(textview, 0,4,0,9)
  53.         tablec.attach(scrolledwindow, 0,4,0,9)
  54.  
  55.         button = gtk.Button("Aplicar")
  56.         button.connect("clicked", ejecutar, textbuffer)
  57.         button.show()
  58.         tablec.attach(button, 2,4,9,10)    
  59.  
  60.         tablec.show()
  61.        
  62.         window.add(tablec)
  63.         window.show_all()
  64.  
  65.        
  66. def main():
  67.     gtk.main()
  68.     return
  69.  
  70. if __name__ == "__main__":
  71.     PruebaBuffer = PruebaBuffer()
  72.     main()
  #2 (permalink)  
Antiguo 08/11/2011, 09:39
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Como obtener el texto de gtk Buffer



Se me olvido poner que me sale este error !

TypeError: cannot concatenate 'str' and 'gtk.TextBuffer' objects




:(
  #3 (permalink)  
Antiguo 08/11/2011, 10:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como obtener el texto de gtk Buffer

¿No es lo suficientemente claro? TextBuffer tiene un método get_text() para obtener el texto que contiene, no podés simplemente imprimir el objeto en sí.
  #4 (permalink)  
Antiguo 08/11/2011, 10:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como obtener el texto de gtk Buffer

Es por que tienes que obtener el string del TextBuffer.

Código Python:
Ver original
  1. comando = os.system('comando --mensaje="'+textbuffer.get_text(*textbuffer.get_bounds())+'"')

Te recomendaría usar gtk.Entry en para un manejo mas fácil.
  #5 (permalink)  
Antiguo 08/11/2011, 10:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como obtener el texto de gtk Buffer

Por cierto estoy casi seguro que esto es un proyecto de la uni por que ya van como 3 personas que preguntan cosas muy parecidas.
  #6 (permalink)  
Antiguo 08/11/2011, 12:12
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Como obtener el texto de gtk Buffer

Bueno creo que no puedo usar un gtk.Entry porque el mensaje que se le pide al usuario puede ser muy grande y no lo puedo guardar en una variable como tal...

Y si es un proyecto jeje!!! Nos has ayudado mucho Razpeitia
Mil gracias !
Nos pusieron este proyecto en Python y no nos dieron mucho tiempo para aprender el lenguaje :/


Espero nos puedas seguir ayudando cualquier cosa
  #7 (permalink)  
Antiguo 08/11/2011, 13:07
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como obtener el texto de gtk Buffer

jejeje se parecen mucho a mis alumnos. Siempre les doy mucho tiempo y la mera hora andan haciendo las cosas.

Etiquetas: buffer, gtk
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 00:39.