Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
BMI Grafico - bmig.pl

bmig.pl

Caricato da:
Scarica il programma completo

  1. #!/usr/bin/perl
  2.  
  3. use Glib qw/TRUE FALSE/;
  4. use Gtk2 '-init';
  5.  
  6. sub calcolabmi
  7. {
  8.         $peso = $pesoe->get_text;
  9.         $altezzacm = $altezzae->get_text;
  10.         $altezzam = ($altezzacm/100);
  11.         $bmi = ($peso/$altezzam/$altezzam);
  12.         $bmil->set_text($bmi);
  13. }
  14. sub resetall
  15. {
  16.         $pesoe->set_text("");
  17.         $altezzae->set_text("");
  18.         $bmil->set_text("");
  19. }
  20. sub esci
  21. {
  22.         Gtk2->main_quit;
  23. }
  24. #Start Gui
  25. $gui = Gtk2::Window::new("toplevel");
  26. $gui->signal_connect(destroy => \&esci);
  27. $gui->set_position("center");
  28. $gui->set_title("BMI");
  29. #row1
  30. my ($homogeneous, $spacing, $expand, $fill, $padding) = @_;
  31. $pesol = Gtk2::Label->new("Peso (kg):");
  32. $pesoe = Gtk2::Entry->new;
  33. $riga1 = Gtk2::HBox::new(1, 0.2);
  34. $riga1->pack_start($pesol, $expand, $fill, $padding);
  35. $riga1->pack_start($pesoe, $expand, $fill, $padding);
  36. $pesol->show;
  37. $pesoe->show;
  38. #row 2
  39. $altezzal = Gtk2::Label->new("Altezza (cm):");
  40. $altezzae = Gtk2::Entry->new;
  41. $riga2 = Gtk2::HBox::new(1, 0.2);
  42. $riga2->pack_start($altezzal, $expand, $fill, $padding);
  43. $riga2->pack_start($altezzae, $expand, $fill, $padding);
  44. $altezzal->show;
  45. $altezzae->show;
  46. #row 3
  47. $ibmil = Gtk2::Label->new("BMI:");
  48. $bmil = Gtk2::Label->new("");
  49. $riga3 = Gtk2::HBox::new(1, 0.2);
  50. $riga3->pack_start($ibmil, $expand, $fill, $padding);
  51. $riga3->pack_start($bmil, $expand, $fill, $padding);
  52. $ibmil->show;
  53. $bmil->show;
  54. #row 4
  55. $bmib = Gtk2::Button->new("Calcola BMI");
  56. $bmib->signal_connect(clicked => \&calcolabmi);
  57. $clearb = Gtk2::Button->new("Cancella");
  58. $clearb->signal_connect(clicked => \&resetall);
  59. $escib = Gtk2::Button->new("Esci");
  60. $escib->signal_connect(clicked => \&esci);
  61. $riga4 = Gtk2::HBox::new(1, 0.2);
  62. $riga4->pack_start($bmib,$expand, $fill, $padding);
  63. $riga4->pack_start($clearb,$expand, $fill, $padding);
  64. $riga4->pack_start($escib,$expand, $fill, $padding);
  65. $bmib->show;
  66. $clearb->show;
  67. $escib->show;
  68. #Cont
  69. $cont = Gtk2::VBox::new($homogeneous, $spacing);
  70. $cont->pack_start($riga1, $expand, $fill, $padding);
  71. $cont->pack_start($riga2, $expand, $fill, $padding);
  72. $cont->pack_start($riga3, $expand, $fill, $padding);
  73. $cont->pack_start($riga4, $expand, $fill, $padding);
  74. $riga1->show;
  75. $riga2->show;
  76. $riga3->show;
  77. $riga4->show;
  78. #Add&Show
  79. $gui->add($cont);
  80. $cont->show;
  81. $gui->show;
  82. Gtk2->main;