• Publicidad

Calculadora en interfaz gráfica con 'Perl'

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Calculadora en interfaz gráfica con 'Perl'

Notapor javiandres » 2013-07-29 18:22 @807

Por favor, necesito alguien que me ayude a crear una calculadora sencilla, con dos cajas de texto y lista de selección (sumar, restar, multiplicar, dividir), un botón y una etiqueta para el resultado.

Gracias.
javiandres
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2013-07-24 19:27 @852

Publicidad

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor MARKO » 2013-07-30 15:42 @696

Para el manejo de interfaz gráfica te conviene revisar algo de las librerías Tk o Tkx (que pertenece a ActiveState y acá hay un manual de Tk mediante Tkx) Estas funcionan en Windows y otras plataformas.

Si solo vas a trabajar en Windows puedes acudir a WIN32::GUI.

Por allí está el Citrus Perl que parece que es más orientado a desarrollo con interfaz gráfica.

Éxitos.
MARKO
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2012-01-10 22:34 @982

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor explorer » 2013-07-30 16:46 @740

Hola, MARKO.

javiandres no se refiere a las bibliotecas Tk, sino a las Wx.
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

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor MARKO » 2013-07-30 17:30 @771

explorer escribiste:Hola, MARKO.

javiandres no se refiere a las bibliotecas Tk, sino a las Wx.


¿Cuál sería la diferencia?

Cuando leí "caja de texto, lista de selección, botón, etiqueta", pensé en Tk o Win32::GUI.

Parece que Citrus Perl está basado en Wx.
MARKO
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2012-01-10 22:34 @982

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor explorer » 2013-07-30 17:55 @788

MARKO escribiste:¿Cuál sería la diferencia?
Hay tanta diferencia como entre Tk y Win32::GUI :)

Cada entorno tiene sus peculiaridades, y su lenguaje (espacio de nombres).

MARKO escribiste:Parece que Citrus Perl está basado en Wx.
Sí, así es.

Lo que no me atrevo es a recomendarle que se instale Citrus Perl en su Linux, si antes no sabe manejar diferentes instalaciones del intérprete perl, en el mismo sistema.
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

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor javiandres » 2013-08-01 16:08 @713

Hola amigos, pues intenté crearla con Wx pero como no me funcionó, quiero cambiar de GUI, o sea necesito crear una calculadora con Perl, no importa con qué interfaz gráfica sea pero que me funcione :D
javiandres
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2013-07-24 19:27 @852

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor explorer » 2013-08-01 16:17 @720

No has publicado el código que dices que te ha fallado...
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

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor javiandres » 2013-08-01 16:35 @733

No me está entrando al if

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Wx;
  4.  
  5. package MyFrame;
  6.  
  7. use Wx qw[:button :textctrl :statictext :menu :sizer :misc :frame];
  8.  
  9. #use Wx qw[:everything];
  10. #use Wx qw[ TAGLIST];
  11. #use Wx qw[Button TextCtrl StaticText MenuBar Menu BoxSizer GridSizer];
  12. #use Wx::Button;
  13. #use Wx::GetValue;
  14. #use Wx::StaticText;
  15. #use Wx::MenuBar;
  16. #use Wx::Menu;
  17. #use Wx::BoxSizer;
  18. #use Wx::GridSizer;
  19.  
  20. use base 'Wx::Frame';
  21. use Wx::Event qw(EVT_BUTTON);
  22. use Switch;
  23.  
  24. sub new {
  25.     my $ref          = shift;
  26.     my $LblResultado = $ref->SUPER::new( undef, -1, '@_javiandres', [ -1, -1 ], [ 300, 250 ], );
  27.     my $panel        = Wx::Panel->new( $LblResultado, -1, );
  28.     my $etiqueta1    = Wx::StaticText->new( $panel, -1, 'Número 1', [ 10, 20 ], [ -1, -1 ], );
  29.     my $txtNumero1   = Wx::TextCtrl->new( $panel, 0, '', [ 100, 20 ], [ -1, -1 ], );
  30.     my $etiqueta2    = Wx::StaticText->new( $panel, 1, 'Número 2', [ 10, 40 ], [ -1, -1 ], );
  31.     my $txtNumero2   = Wx::TextCtrl->new( $panel, 2, '', [ 100, 40 ], [ -1, -1 ], );
  32.     my $CmbOperador
  33.         = Wx::ComboBox->new( $panel, 3, '', [ 10, 70 ], [ -1, -1 ], [ 'Sumar', 'Restar', 'Multiplicar', 'Dividir' ] );
  34.     my $BtnCalcular = Wx::Button->new( $panel, 1, 'Calcular!', [ 10, 100 ], [ -1, -1 ], );
  35.  
  36.     EVT_BUTTON( $LblResultado, $BtnCalcular, \&OnClick );
  37.     return $LblResultado;
  38. }
  39.  
  40. sub OnClick {
  41.     my ( $LblResultado, $event ) = @_;
  42.     my $CmbOperador = '';
  43.     my $txtNumero1  = '';
  44.     my $txtNumero2  = '';
  45.     my $Resultado;
  46.  
  47.     # double num1=double.parse(txtNumero1.text);
  48.     #double num2=double.parse(txtNumero2.text);
  49.     #double resultado;
  50.  
  51.     if ( $CmbOperador = 'Sumar' ) {
  52.  
  53.         #$LblResultado = $txtNumero1 + $txtNumero2;
  54.         $Resultado = $txtNumero1 + $txtNumero2;
  55.  
  56.     }
  57.     else {
  58.         $Resultado = $txtNumero1 - $txtNumero2;
  59.     }
  60.  
  61.     #if ($CmbOperador->GetValue() eq 'Sumar') {
  62.     # $Resultado = $txtNumero1 + $txtNumero2;;
  63.  
  64.     #   }
  65.     $LblResultado->SetTitle($Resultado);
  66.  
  67.     #   print ($CmbOperador->GetValue());
  68. }
  69.  
  70. package MyApp;
  71. use base 'Wx::App';
  72.  
  73. sub OnInit {
  74.     my $frame = MyFrame->new;
  75.     $frame->Show(1);
  76. }
  77.  
  78. package main;
  79. my $app = MyApp->new;
  80. $app->MainLoop;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2013-08-01 17:54 @788, editado 1 vez en total
Razón: Formateado de código con Perltidy y poner marcas Perl
javiandres
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2013-07-24 19:27 @852

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor javiandres » 2013-08-01 19:18 @846

Ya, por fin me salió :D ¡¡¡ Gracias !!!
javiandres
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2013-07-24 19:27 @852

Re: Calculadora en interfaz gráfica con 'Perl'

Notapor explorer » 2013-08-01 22:07 @963

Tienes puesto

if ( $CmbOperador = 'Sumar' ) {

Y eso es incorrecto. El operador '=' es el de asignación, no comparación.

Si vas a comparar cadenas de caracteres, por su igualdad, debes usar el operador 'eq'.

Más información en tu propio ordenador en perldoc perlop, y en la Web (traducido al español), en la sección Operadores de igualdad.

Repasa tu bandeja de entrada de mensajes privados. Creo que la línea 61 es la correcta.
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


Volver a Básico

¿Quién está conectado?

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