Thread [Tk] Frame leeren ohne zu zerstören (12 answers)
Opened by projectx at 2011-02-25 17:42

Kalle
 2011-02-28 18:40
#146111 #146111
User since
2007-03-18
48 Artikel
BenutzerIn
[default_avatar]
hm ? Ich hab das getestet. Geht.
Ich habe einfach den ersten Code Teil aus deinem anderen Beitrag kopiert.
Dann darunter die sub rechnen von payx und darunter meine sub loeschen.
Sieht dann so aus und funktioniert:

Code (perl): (dl )
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
use Tk;

$window = MainWindow->new(-width=> '0m',-title=> 'Umrechnung');

$oben = $window->Frame->pack();
$titel = $oben->Label(-text=>"Programm für die Umrechnung von Grad Celsius in Kelvin und Fahrenheit.")->pack();

$clean = $window->Frame->pack();
$empty = $clean->Label(-text=>"")->pack();

$window->Label(-text=>'Anfangswert:')->pack();

$eingabe = $window->Text(-width=>20,-height=>1,-borderwidth=> '1m',-cursor=> 'left_side',-background=> 'white',-font=>'courierb12',
-foreground=> 'black')->pack();

$window->Label(-text=>'Endwert:')->pack();
$eingabe2 = $window->Text(-width=>20,-height=>1,-borderwidth=> '1m',-cursor=> 'left_side',-background=> 'white',-font=>'courierb12',
-foreground=> 'black')->pack();

$clean2 = $window->Frame->pack();
$empty2 = $clean2->Label(-text=>"")->pack();

$window->Label(-text=>'Celsius                                        Fahrenheit                                        Kelvin', -font=>'courierb 10 bold' )->pack();
$ausgabe = $window->Text(-width=>60,-height=>10,-borderwidth=> '0m',-cursor=> 'left_side',-background=> 'white',-font=>'courierb 12',
-foreground=> 'black')->pack();

$bottom_frame = $window->Frame()->pack(-side=>'bottom', -pady=>10);
 
$bottom_frame->Button(  -text=>'Alles zeigen',
                        -command=>\&rechnen)->pack(-side=>'left');
                                                
$bottom_frame->Button(  -text => "Alles löschen",
                        -command=>\&loeschen)->pack(-side=>'left');

$bottom_frame->Button(  -text => "Beenden",
                        -command=> sub {exit 0})->pack(-side=>'left');

MainLoop;

sub rechnen {
    my $anfang = $eingabe->Contents;
    my $k = (($anfang * 9)  /5 ) +32;
    my $f = $anfang + 273.15;
    $ausgabe->Contents("Fahrenheit: $k\nKelvin: $f");
}

sub loeschen {
    $ausgabe->Contents('');
}


Das war dein erstes Posting, da fehlt noch use strict und eventuelle daraus resultierende Änderungen von dir, aber prinzipiell gehts so.
Wenn du jetzt nicht nachvollziehen kannst, wo der Fehler liegt, solltest du deinen Code nochmal am Stueck posten, sonst fängt die Raterei an.

Gruß

Kalle

View full thread [Tk] Frame leeren ohne zu zerstören