• Publicidad

Cómo coloco un separador con Gtk y Perl

¿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.

Cómo coloco un separador con Gtk y Perl

Notapor proxy_lainux » 2009-05-06 21:10 @923

Hola

Estoy haciendo un programa con Gtk2 y Perl; hasta ahora ya aprendí como crear una ventana, agregarle botones, etc., pero tengo un problema: al leer un tutorial de gtk-perl encontré varias cosas interesantes, y una de ellas es cómo crear un separador.

Estaba intentando crear dos botones y un separador para separar de un label... así es como quiero que quede.

Código: Seleccionar todo
label
separador
botones


Pero al incluirle el separador, me aparece junto a los botones, y lo que quiero es que me aparezca encima; ya intenté mover el código para que me aparezca diferente, pero siempre me aparece igual, les dejo el código que llevo hecho.

¿Pero alguien sabe cómo puedo colocar el separador encima de los botones?, porque me gustaría colocar un label encima del separador, de hecho... ¿alguien sabe cómo colocar todo ese tipo de cosas en el lugar y la forma que yo quiera?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use Glib qw/TRUE FALSE/;
use Gtk2 '-init';

sub winnew{
$winn = Gtk2::Window->new('toplevel');
$winn->set_title('proxy_lainux');
$winn->set_border_width(100);
$winn->show;
}

$win = Gtk2::Window->new('toplevel');
$win->set_title('Belial & Grimoire');
$win->set_border_width(110);
$win->signal_connect(delete_event => sub {Gtk2->main_quit()});

$box1 = Gtk2::HBox->new(FALSE,0);
$win->add($box1);

$sep = Gtk2::HSeparator->new;
$box1->pack_start($sep,FALSE,TRUE,20);
$sep->show;

$boton = Gtk2::Button->new('Ventana nueva');
$boton->signal_connect(clicked => \&winnew, 'Boton1');
$box1->pack_start($boton,TRUE,TRUE,0);
$boton->show;

$boton = Gtk2::Button->new('Frase');
$boton->signal_connect(clicked => \&frase, 'Boton2');
$box1->pack_start($boton,TRUE,TRUE,0);
$boton->show;

$box1->show;
$win->show;

Gtk2->main;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
proxy_lainux
Perlero nuevo
Perlero nuevo
 
Mensajes: 30
Registrado: 2009-04-13 21:38 @943

Publicidad

Notapor explorer » 2009-05-07 06:27 @310

El capítulo 6 del tutorial de GTK2-Perl está dedicado completamente a eso.

Se trata de usar las funciones pack() junto con los hbox y vbox.

En tu ejemplo, se podría hacer con un vbox (los tres elementos puestos en vertical) o con 3 hbox (un elemento por cada uno).

Otra forma es usando tablas (Cap.6.4).
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 proxy_lainux » 2009-05-07 22:42 @987

Hola

Lo intenté, pero no lo logro. Algo que me di cuenta es que si pongo en vertical las cosas, sí me aparece el separador como quiero, pero los botones me aparecen también en vertical... ¿será acaso que tengo que hacer que los botones se coloquen en horizontal, y el separador en vertical?

¿O alguien podría darme un ejemplo, por favor?

salu2 :D
proxy_lainux
Perlero nuevo
Perlero nuevo
 
Mensajes: 30
Registrado: 2009-04-13 21:38 @943

Notapor proxy_lainux » 2009-05-09 19:01 @834

hola

creo que ya encontré cómo. Les dejo el código por si a alguien le sirve, o si ven algún fallo, favor de decirme.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use Glib qw/TRUE FALSE/;
use Gtk2 '-init';

sub winnew{
$winn = Gtk2::Window->new('toplevel');
$winn->set_title('proxy_lainux');
$winn->set_border_width(100);

$bo2 = Gtk2::HBox->new(TRUE,10);

my $salir = Gtk2::Button->new('salir');
$salir->signal_connect(clicked => sub {Gtk2->main_quit()});

$bo2->add($salir);
$winn->add($bo2);
$winn->show_all;
}


$win = Gtk2::Window->new('toplevel');
$win->set_title('Belial & Grimoire');
$win->set_border_width(110);
$win->signal_connect(delete_event => sub {Gtk2->main_quit()});

$box1 = Gtk2::HBox->new(TRUE,10);

my $vbox = Gtk2::VBox->new( FALSE, 1 );
$vbox->pack_start( $etiqueta = Gtk2::Label->new(),FALSE ,FALSE ,1);
$vbox->pack_start( Gtk2::HSeparator->new, FALSE, FALSE,1);

my $exit = Gtk2::Button->new( 'salir' );
$exit->signal_connect( clicked => sub {Gtk2->main_quit()});
my $fras = Gtk2::Button->new( 'Frase' );
$fras->signal_connect( clicked => sub { $etiqueta->set_text('Hola mundo')});
my $winv = Gtk2::Button->new( 'ventana nueva' );
$winv->signal_connect( clicked => \&winnew);

$box1->add( $winv);
$box1->add( $fras);
$box1->add( $exit);

$vbox->pack_end( $box1, FALSE, FALSE, 1 );
$win->add($vbox);

$win->show_all;

Gtk2->main;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
proxy_lainux
Perlero nuevo
Perlero nuevo
 
Mensajes: 30
Registrado: 2009-04-13 21:38 @943


Volver a Intermedio

¿Quién está conectado?

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