Buenas tardes/días:
Estaba probando la suite glade, pero no consigo darle movida.
Quizás no he bajado la última versión y/o las librerías no coinciden, la cosa es que no para de tirarme errores y no coinciden las imágenes que se muestran en el mensaje con las de mi glade.
Bueno, ahora a los papeles:
Mi
script Perl
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use Gtk2::GladeXML;
use Gtk2 -init;
my($programa, $ventana_principal);
$programa = Gtk2::GladeXML->new('test1.glade');
$ventana_principal = $programa->get_widget('window1');
$ventana_principal->show_all();
Gtk2->main;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Mi archivo .glade
Using xml Syntax Highlighting
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Hola Mundo!</property>
</object>
</child>
</object>
</interface>
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
y el error que me tira por pantalla:
Using bash Syntax Highlighting
root@kali:~/Desktop/TEST/glade# ./test1.pl
(test1.pl:7114): libglade-WARNING **: Expected <glade-interface>. Got <interface>.
(test1.pl:7114): libglade-WARNING **: did not finish in PARSER_FINISH state
Can't call method "get_widget" on an undefined value at ./test1.pl line 10.
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Bueno, según puedo inferir me dice que en xml se espera una etiqueta que no está, <glade-interface> en lugar <interface>, así y todo, como que eso se lo podría
bancar me tira también que no puede llamar al metodo "get_widget".
Bueno, lo que la intuición dice es abrir con gedit el .glade y cambiar lo que dice el mensaje de error...
¡OOPS! Negativo...
Using bash Syntax Highlighting
root@kali:~/Desktop/TEST/glade# ./test1.pl
(test1.pl:7138): libglade-WARNING **: Unexpected element <object> inside <glade-interface>.
Can't call method "show_all" on an undefined value at ./test1.pl line 11.
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Bueno, ¡seguimos con el gedit a full! y cambiamos todos los tags <object> por <widget>.
¡
Voila! Funciona...
Ahora me dirán que para qué pusiste todo este mensaje comentando algo tan trivial como lo que acabas de comentar, y no están errados...
Lo hice por dos motivos: uno para darle una mano a quienes están tan perdidos como yo en esto de la programación Perl con interfaz gráfica y para preguntar al foro si:
- ¿Debería estar utilizando las librerías Gtk3 como dice el comentario en el xml/.glade (aunque no hay documentación suficiente)?
- La versión de glade que tengo es la 3.12.1, y no me da las opciones de guardar como lo exponía explorer unos mensajes más arriba. ¿Hay forma de que no sea tan artesanal la forma de editar el xml?
Bueno, para esto y un montón (mogollón como a uds. les gusta decir) de cosas más es que dejo la inquietud...
Saludos y gracias.
Ahora salgo a correr un rato para aclarar las ideas.