Thread [Tk] Button - Rahmen entfernen (4 answers)
Opened by campbell-bs at 2011-11-28 12:18

GUIfreund
 2011-11-28 14:44
#154508 #154508
User since
2011-08-08
559 articles
BenutzerIn
[default_avatar]
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

View full thread [Tk] Button - Rahmen entfernen