• Publicidad

Script con Gtk2

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Script con Gtk2

Notapor Iñigo » 2008-02-01 16:27 @727

Kaixo!!

Soy un novato utilizando la biblioteca Gtk2, y la verdad, los widget funcionan todos correctamente, pero... tengo un problema, a ver cómo lo explico. Tengo una ventana principal en la cual tengo un campo textentry y un textview, además de ciertos botoncitos; el campo textentry funciona ok, y los botoncitos también, pero el textview, no o si, según se mire.

Si busco una palabra en un determinado diccionario, funciona Ok, y si esta palabra tiene más significados, los muestra en la textview, pero si hago una segunda búsqueda, me muestra la anterior búsqueda. En fin, que no actualiza el campo, he intentado todo, pero no encuentro nada, ni ningún ejemplo en el que ver my problem.

Esto vendría a ser el script que estoy haciendo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use LWP 5.64;
use Gtk2::GladeXML;
use Gtk2 -init;
my $browser=LWP::UserAgent->new;
..
..
my $programa = Gtk2::GladeXML->new('program1.glade');
my $ventana_principal = $programa->get_widget('Ventana_Principal');
my $palabraentrada=$programa->get_widget('palabra');
my $resultado=$programa->get_widget('busquedaresultado');
$programa->signal_autoconnect_from_package('main');
$ventana_principal->show_all();
Gtk2->main;
sub on_salir_clicked { Gtk2->main_quit; }
sub on_busqueda_clicked {
   my $file="";
   my $buffertxt= Gtk2::TextBuffer->new;
   my $hitza=$hitz_sartuta->get_text();
   my $response=$browser->post ...
   ....
   ....
   ....
   $file=$response->content;
   $buffertxt->insert_at_cursor($file);  
   $resultado->set_buffer($buffertxt);
 }

 
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Y son en las dos últimas líneas, donde no consigo que me actualice la ventana del textview. He probado con un campo label, y funciona Ok, es más, actualiza los datos, pero no consigo lo mismo con el campo textview.

Alguna ayudita, please.

Aio

Let's GNU
Iñigo
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-02-01 16:15 @719

Publicidad

Notapor explorer » 2008-02-01 21:10 @924

Egunon, Iñigo. Bienvenido a los foros de Perl en Español.

Haz una cosa... intercambia esas dos líneas... es decir... inmediatamente que has creado el objeto $buffertxt, asocialo, con set_buffer, al objeto $resultado. Y más tarde, preocupate solo de actualizar el $buffertxt.

Es más... creo que podrías también hacer lo siguiente: al principio del programa creas los objetos que necesites, incluyen el textview y el TextBuffer. Haces luego la asociación entre los dos. Y el resto del programa consiste únicamente en la limpieza y escritura del buffer. Nada de crear buffers cada vez que necesites cambiar el contenido del textview: borra su contenido actual y luego escribe dentro el nuevo contenido.

Sacado de http://www.linuxjournal.com/article/6586 , sección TextViews.

Ya nos dirás...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Iñigo » 2008-02-02 05:39 @277

Kaixo!!

Lo solucioné, pero por ahora la única forma que he encontrado por ahora de actualizarlo, ha sido creándolo como variable local, aunque es un engorro, como variable global me dice que tururú.

De todas formas voy a probar el set_buffer y ya comentaré qué tal me ha ido.

Mila ezker por responder ;-)

Aio.

Let's GNU
Iñigo
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-02-01 16:15 @719


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados