Hace tiempo intenté aprender a utilizar Gtk, he hice un código... y ahorita vi que puedo hacerlo también con Perl... así que no sé si alguien puede ayudarme con una explicación... o algún tutorial para hacer ventanas con Gtk con Perl, ya que los manuales que encuentro me dan explicación sencillas y en este momento las estoy estudiando, pero como les comenté, hice un código para hacer eso. El problema es que hay cosas que no comprendo, por ejemplo... ¿cómo coloco dos botones?... Ya aprendí a colocar 1... ¿pero 2?...
Les dejo el código de Gtk para que vean que fue lo que hice, (el código está mal hecho ya que solo le agregué cosas para aprender) - y les dejo el código en perl que encontré.. pero no logro, por ejemplo, agregarle 2 botones.
- include <gtk/gtk.h>
- void close(GtkWidget *widget, gpointer *data){
- gtk_main_quit();
- }
- void click(GtkButton *button, gpointer *data){
- GtkLabel *label = GTK_LABEL(data);
- gtk_label_set_text(label," hola mundo");
- gtk_misc_set_alignment(GTK_MISC(label),0,5);
- }
- GtkWidget *construct_window(void){
- GtkWidget *window, *vbox, *button, *label, *separator, *hbox;
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window),"proxy _lainux");
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
- gtk_widget_set_usize(GTK_WIDGET(window),500,400);
- gtk_widget_show(window);
- hbox = gtk_hbox_new(TRUE,0);
- gtk_container_add(GTK_CONTAINER(window),hbox);
- gtk_widget_show(hbox);
- vbox = gtk_vbox_new(TRUE,0);
- gtk_container_add(GTK_CONTAINER(window),vbox);
- gtk_widget_show(vbox);
- label = gtk_label_new(" Anatamortem");
- gtk_misc_set_alignment(GTK_MISC(label),0,5);
- gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0);
- gtk_container_set_border_width(GTK_CONTAINER(label),0);
- gtk_widget_show(label);
- separator = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(hbox),separator,TRUE,TRUE,0);
- gtk_widget_show(separator);
- button = gtk_button_new_with_label("Voltear");
- gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(click),label);
- gtk_misc_set_alignment(GTK_MISC(button),0,5);
- gtk_box_pack_start(GTK_BOX(vbox),button,TRUE,TRUE,0);
- gtk_container_set_border_width(GTK_CONTAINER(button),10);
- gtk_widget_show(button);
- gtk_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(close),NULL);
- return window;
- }
- int main(int argc, char *argv[]){
- gtk_init(&argc,&argv);
- GtkWidget *window = construct_window();
- gtk_main();
- return 0;
- }
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use Gtk2 '-init';
$ventana = Gtk2::Window->new('toplevel');
$ventana->set_title('Hello World!');
$ventana->set_border_width(20);
$boton = Gtk2::Button->new('Hello World!');
$boton->signal_connect('clicked' => sub {Gtk2->main_quit; });
$ventana->add($boton);
$ventana->show_all;
# Empieza el show...
Gtk2->main;
use Gtk2 '-init';
$ventana = Gtk2::Window->new('toplevel');
$ventana->set_title('Hello World!');
$ventana->set_border_width(20);
$boton = Gtk2::Button->new('Hello World!');
$boton->signal_connect('clicked' => sub {Gtk2->main_quit; });
$ventana->add($boton);
$ventana->show_all;
# Empieza el show...
Gtk2->main;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4