Thread [Tk] Button - Rahmen entfernen
(4 answers)
Opened by campbell-bs at 2011-11-28 12:18
Ein kleines lauffähiges Beispiel ist für die Verständigung manchmal recht hilfreich.
Die Farbe des 3D-Rahmens wird von Tk aus der Hintergrundfarbe errechnet, um den aktuellen 3D-Effekt zu erzielen. Bei -relief=>'flat' (kein 3D-Effekt) wird die Hintergrundfarbe benutzt. Bei -borderwidth=>0 wird der Button etwas kleiner. Bei Linux wird außerdem ein Highlight-Rahmen erzeugt, um anzuzeigen, ob der Button den Fokus hat. Dessen Farben kann man mit -highlightbackground und -highlightcolor setzen, die Breite mit -highlightthickness. Bei Windows gibt es keinen Highlight-Rahmen. Der Fokus wird dort (Windows-konform) durch ein gepunktetes Rechteck im Widget angezeigt. Dieses Beispiel mag als Grundlage für eigene Experimente dienen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 use strict; use warnings; use Tk; my $mw = MainWindow->new; my $bt1 = $mw->Button(-text => 'Show dialog', -command => \&showmsg)->pack; my $bt2 = $mw->Button(-text => 'bunt', -activebackground => 'red', -borderwidth => 6, -highlightbackground => 'green', -highlightcolor => 'yellow', -highlightthickness => 4)->pack; MainLoop; sub showmsg { my $antw = $mw->messageBox(-message => 'Exit?', # -background => 'orange', # nicht bei Windows ! -type => 'YesNo', -default => 'No'); $antw eq 'Yes' and exit; return; } Gruß
GUIfreund |