Thread [Tk] Refresh Problem (9 answers)
Opened by a_abels at 2011-11-03 00:14

GUIfreund
 2011-11-06 17:00
#153952 #153952
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Wie Dubu schon schrieb, erzeugst du bei jedem Aufruf von banner ein weiteres Label-Widget. Mach es besser so: Im Hauptprg.
Code (perl): (dl )
my $banner_lab = $mw->Label( -fg=> $fgcolor, -bg => $bgcolor, -text => $label, -font => $fonts);
und in banner
Code (perl): (dl )
$banner_lab -> place (-x => $text_position_x, -y => $text_position_y);
Kriege aber keinen Schreck, wenn jetzt dein Banner mit Affenzahn über den Bildschirm huscht.

Du bekommst nach wie vor eine Fehlermeldung, wenn du das Programm mit dem Kill-Button abbrichst. Füge deshalb vor der ersetzten Zeile in banner noch ein:
Code (perl): (dl )
Exists($banner_lab)  or  exit;

Noch ein paar Vorschläge zu deinem Kode:

Verwende Getopt::Long zum Parsen deiner Optionen. Ist dir schon aufgefallen, dass du die Option $title an 2 Stellen vorsiehst?

Verwende globale Variablen nur, wenn du sie brauchst. Ersetze deshalb our durch my.

Für deine Schleife sieh dir mal die Tk-Methode repeat(millisecs, callback); an.

Deaktiviere den Aufruf MainLoop; nicht. In deinem Fall geht's gut, aber ich habe mir damit schon bösen Ärger eingehandelt.

Edit: Ich habe leider den falschen Beitrag zum Beantworten angeklickt. Und ich weiß nicht, wie ich das korrigieren kann.
Last edited: 2011-11-06 17:09:57 +0100 (CET)
Gruß
GUIfreund

View full thread [Tk] Refresh Problem