Hier mal etwas code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!perl
use strict;
use warnings;
use Tk;
use Tk::LabEntry;
my $mw = tkinit(-width => 640, -height => 480, -title => 'Programm zur Umrechnung von Clesius in ...');
$mw->packPropagate(0);
my $button_frame = $mw->Frame(-bg => '#259238')->pack(-fill => 'x', -expand => 0,);
my $ergebnis_frame = $mw->Frame(-bg => '#9D2763')->pack(-fill => 'both', -expand => 1,);
my $startwert_entry = $button_frame->LabEntry(-label => 'Startwert: ')->pack(-side => 'left',);
my $endwert_entry = $button_frame->LabEntry(-label => 'Endwert: ')->pack(-side => 'left',);
$button_frame->Button(
-text => 'Ausrechnen...',
-command => sub{
rechnen_und_anzeigen($startwert_entry, $endwert_entry, $ergebnis_frame);
return 1;
},
)->pack(-side => 'left',);
$mw->MainLoop();
=head1 SUBS
=head2 rechnen_und_anzeigen( $startwert_entry, $endwert_entry, $ergebnis_frame )
TODO: Dokumentation
=cut
sub rechnen_und_anzeigen {
my $startwert_entry = shift or die('Missing startwert_entry');
my $endwert_entry = shift or die('Missing endwert_entry');
my $ergebnis_frame = shift or die('Missing ergebnis_frame');
my $startwert = $startwert_entry->get();
my $endwert = $endwert_entry->get();
return if $startwert !~ m/^\d+$/;
return if $endwert !~ m/^\d+$/;
print "TODO: C in F usw. mit $startwert und $endwert\n";
$ergebnis_frame->Label(-text => 'Hallo Ergebnis!')->pack();
} # /rechnen_und_anzeigen
Was da noch zu tun ist:
- begreifen, was im Code passiert (Tipp: sowas kann man prima mit Kommentaren für später festhalten)
- die Sub rechnen_und_anzeigen schreiben
- eine Möglichkeit finden, $ergebnis_frame zu leeren (alte Ergebnisse zu löschen), bevor neue draugemalt werden oder ein anders Widget benutzen (z.B. Text / Spreadsheet)
- das fertige Ergebnis hier reinstellen
Das ist allerdings meine letzte Antwort auf diesen Beitrag, wenn du nicht mit strict arbeitest ;-)