Thread [Tk] Frame leeren ohne zu zerstören
(12 answers)
Opened by projectx at 2011-02-25 17:42
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 |