elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Littlehorse, Eleкtro)
| | |-+  COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON  (Leído 3,034 veces)
oihantze

Desconectado Desconectado

Mensajes: 19


Ver Perfil
COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« en: 24 Agosto 2009, 17:31 »

Hola,

estoy realizando una aplicación no web en perl y ahora estoy haciendo la parte de las interfaces graficas y estoy un poco perdid.

Estoy intentando dar funcionalidades a unos radio buttons con el gtk2 y no se como hacerlo.

tengo una pantalla inicial de la cual dependiendo en que radiobutton clicke el usuario nos llevara a una pantalla u a otra.

El problema que tengo es que pulsando en un radiobutton o en otro siempre me lleva a la misma pantalla.

Alguien sabe como puedo solucionarlo????????

un trozo de mi código es este:

$perfil1 = Gtk2::RadioButton->new_with_label('perfil', 'Estudiante');
@group = $perfil1->get_group;
$perfil2 = Gtk2::RadioButton->new_with_label(@group, 'Profesor');
$perfil3 = Gtk2::RadioButton->new_with_label(@group, 'Investigador');

$l = $perfil1 -> get_active;
$e = $perfil2 -> get_active;
$f = $perfil3 -> get_active;
                           
#poner ok
$boton_ok = Gtk2::Button->new_from_stock('gtk-ok');
$boton_ok->signal_connect('clicked' => sub { &buscar ($l,$e,$f); }); 

sub buscar {
   if($ARG[0] eq FALSE){
      exec"./alumno.pl";
   }
   elsif($ARG[0] eq FALSE){
      exec"./profesor.pl";
   }
   elsif($ARG[0] eq FALSE){
      exec"./investigador.pl";
   }
}


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« Respuesta #1 en: 24 Agosto 2009, 18:01 »

No he utilizado GTK en Perl. Pero... bueno si puede servir de ayuda...

Citar
   if($ARG[0] eq FALSE){
      exec"./alumno.pl";
   }
   elsif($ARG[0] eq FALSE){
      exec"./profesor.pl";
   }
   elsif($ARG[0] eq FALSE){
      exec"./investigador.pl";
   }

Aca siempre estas evaluando el parametro pasado por la entrada estandar o stdin o la terminal lol  :xD (En este caso el nombre del programa perl cuando lo ejecutas por la terminal) ese es el valor que carga $ARGV[0] por lo tanto debera siempre imprimirse el primer valor del if $ARGV hasta lo que tengo entendido, capta valores pasados por la linea de comandos  y en el caso de argv[0] estas ejecutando el programa con el valor del nombre del programa o similar no se exponerme bien del todo  :xD

En tu caso estas pasando valores dentro del codigo hacia una funcion no por linea de comandos, querras en su lugar considerar el uso de ::

$_[0]   $_[1]  $_[2]  etc....

Por ejemplo:

Código
  1.  
  2. Funcion($l,$c, $d);
  3.  
  4. sub Funcion {
  5.  
  6. if ( $_[0] eq 1 ) {
  7.  
  8. `perl profesor.pl`;
  9.  
  10. } elsif ( $_[1] eq 1 ) {
  11.  
  12. `perl alumno.pl`;
  13.  
  14. } elsif ( $_[2] eq 1 ) {
  15.  
  16. `perl codigo.pl`;
  17. }
  18.  
  19. };
  20.  

En perl se suele evaluar las condiciones dentro del IF sin necesidad de especificarle a la condicion el valor TRUE o FALSE si es TRUE procede a realizar la instruccion que esta dentro de dicho if.

Ejemplo

if ( $valor ) { hacer algo... }

Si $valor retorna TRUE se realiza la instruccion, de lo contrario pues continua..

Pero en este ejemplo para hacerlo mas especifico lo detalle, asi cuando uno de los parametros pasados sea TRUE y los otros 2 FALSE pos se ejecutara la instruccion dada dentro de los if.

 :P


En línea

oihantze

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« Respuesta #2 en: 24 Agosto 2009, 18:12 »

muchas gracias por responder, pero aun así me sigue saliendo todo el rato la misma interfaz. es decir, yo desde general.pl tengo que llamar a estudiante.pl, profesor.pl y investigador.pl y pulse en el radiobutton que pulse siempre me ejecuta estudiante.pl

cual puede ser el problema????
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.684


Yo que tu lo pienso dos veces


Ver Perfil
Re: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« Respuesta #3 en: 24 Agosto 2009, 18:13 »

Como ya te ha dicho Tifa, creo que estas mezclando XD ... algo así sería

Código
  1. $perfil1 = Gtk2::RadioButton->new_with_label('perfil', 'Estudiante');
  2. @group = $perfil1->get_group;
  3. $perfil2 = Gtk2::RadioButton->new_with_label(@group, 'Profesor');
  4. $perfil3 = Gtk2::RadioButton->new_with_label(@group, 'Investigador');
  5.  
  6. #poner ok
  7. $boton_ok = Gtk2::Button->new_from_stock('gtk-ok');
  8. $boton_ok->signal_connect('clicked' => sub { &buscar (); });
  9.  
  10. sub buscar {
  11. if($perfil1 -> get_active()){
  12. exec"./alumno.pl";
  13. }
  14. elsif($perfil2 -> get_active()){
  15. exec"./profesor.pl";
  16. }
  17. elsif($perfil3 -> get_active()){
  18. exec"./investigador.pl";
  19. }
  20. }
  21. #Solo he cambiado esta funcion, y no la he probado :P

Saludos
« Última modificación: 24 Agosto 2009, 18:29 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

oihantze

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« Respuesta #4 en: 24 Agosto 2009, 18:22 »

muchas muchas muchas gracias!

me funciona perfecto, la verdad es que me había liado bastante
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: COMO DAR FUNCIONALIDAD A UN RADIOBUTTON
« Respuesta #5 en: 24 Agosto 2009, 18:35 »

Me alegro que te haya resuelto el problemita.

No me habia fijado en este punto:

Citar
$l = $perfil1 -> get_active;
$e = $perfil2 -> get_active;
$f = $perfil3 -> get_active;

Como estan fuera de la funcion Buscar, el valor que envia el evento no pasa como parametro al pasarle las 3 variables a Buscar();

Pero ya que resolviste el problema :) me alegro.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcionalidad de....?¿?¿?¿?¿? URGENTE
GNU/Linux
jhonsc 0 369 Último mensaje 4 Diciembre 2011, 10:26
por jhonsc
Programa con radiobutton y listbox
.NET
aikt 3 1,975 Último mensaje 21 Febrero 2012, 21:17
por aikt
Abrir un formulario con radiobutton
Programación Visual Basic
celino 4 1,477 Último mensaje 17 Mayo 2012, 21:13
por Saberuneko
¿ Como hago para que un radiobutton rebote en un button ?
.NET
arts 2 410 Último mensaje 18 Junio 2013, 04:18
por XresH
RadioButton
Java
mgc 4 318 Último mensaje 8 Marzo 2014, 21:13
por mgc
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines