Tkinter



Message Widget / Nachrichten-Steuerungselement

Love Message, Public Domain
Dieses Steuerelement (englisch widget) wird benutzt um Text-Nachrichten darzustellen. Dieses Steuerelement, manchmal auch Nachrichten-Box genannt, ist in seiner Funktionalität dem Label-Widget ähnlich, aber es ist flexibler, was die Darstellung von Text betrifft. So kann zum Beispiel die Schriftart (englisch font) geändert werden, während die Schriftart beim Label-Widget immer gleich dargestellt wird. Dies kann man leicht missverstehen: MAn kann für ein Nachrichten-Element eine bestimmte Schriftart wählen, kann diese dann aber nicht mehr innerhalb dieses Elementes ändern. Außerdem kann der Text eines Nachrichten-Elementes sich über mehrere Zeilen erstrecken. Der Umbruch in die verschiedenen Zeilen erfolgt automatisch, ebenso wie die Justierung. Der Text eines Nachrichten-Elementes ist also immer nur in einem Font, der aber gewählt werden kann.

Die Syntax einer Nachrichten-Box sieht wie folgt aus:

w = Message ( master, option, ... )

Kommen wir zu einem einfachen Beispiel. Das folgende Skript erzeugt ein Nachrichten-Element, das ein berühmtes Zitat von Mahatma Gandhi enthält:

from Tkinter import *
master = Tk()
whatever_you_do = "Whatever you do will be insignificant, but it is very important that you do 
it.\n(Mahatma Gandhi)"
msg = Message(master, text = whatever_you_do)
msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack( )
mainloop( )


Das vom vorigen Skript erzeugte Widget sieht wie folgt aus:

Whatever you do

Um dieses Skript unter Python3 laufen zu lassen, muss man lediglich import-Anweisung geringfügig ändern.

Statt
from Tkinter import *
muss man
from tkinter import *
schreiben.

Die Optionen im Detail

Option Bedeutung
anchor Die Position, an der der Text im Message-Widget platziert wird: N (Nord), NE (Nord-Osten), E (Osten), SE (Süd-Osten), S (Süden), SW (Süd-Westen), W (Westen), NW (Nord-Westen), or CENTER (Zentriert). The Default is CENTER (Zentrum).
aspect Abbildungsverhältnis (Aspect ratio). Es wird als Breiten-Höhenverhältnis in Prozent angegeben. Voreingestellt ist der Wert 150, d.h. das Fenster wird 50 % breiter als hoch sein. Falls die Breite explizit gesetzt wird, wird dieser Wert ignoriert.
background Diese Option definiert die Hintergrundfarbe des Benachrichtigungsfensters. Die Grundeinstellung ist systemabhängig.
bg Abkürzung für background
borderwidth Die Randbreite. Sie ist auf 2 voreingestellt.
bd Abkürzung für borderwidth.
cursor Die Art des Mauszeigers, der erscheint, wenn man die Maus über das Widget bewegt.
font Die Schriftart. Die Grundeinstellung ist systemspezifisch.
foreground Die Textfarbe. Die Grundeinstellung ist systemspezifisch.
fg wie foreground.
highlightbackground Zusammen mit highlightcolor und highlightthickness, definiert diese Option wie die Highlight-Region darzustellen ist.
highlightcolor Siehe highlightbackground.
highlightthickness Siehe highlightbackground.
justify Definiert wie mehrzeiliger Text anzuordnen ist: LEFT, RIGHT, oder CENTER. Um den Text innerhalb des Widgets zu platzieren, benutzt man die anchor-Option. Die Grundeinstellung ist LEFT.
padx Horizontales Padding. Grundeinstellung ist -1 (kein padding).
pady Vertikales Padding. Grundeinstellung ist -1 (kein padding).
relief Randverzierung. Grundeinstellung ist FLAT. Andere mögliche Werte: SUNKEN, RAISED, GROOVE und RIDGE.
takefocus Ist dieser Wert auf true gesetzt, akzeptiert das Widget den Eingebefokus. Die Grundeinstellung steht auf false.
text Der Text des Widgets. Zeilenenden werden automatisch eingefügt, falls notwendig um das eingestellte Abbildungsverhältnis /siehe aspect) zu gewährleisten.
textvariable Eine Tkinter-Variable wird mit dem Text assoziiert, was normalerweise StringVar entspricht. Wird diese Variable verändert, wird automatisch die Nachrichten-Box aktualisiert.
width Die Breite des Widgets in Zeicheneinheiten. Eine passende Breite basierend auf dem eingestellten Abbildungsverhältnis (siehe aspect) wird automatisch eingestellt, falls diese Option nicht eingestellt wird.