Tkinter
Message Widget / Nachrichten-Steuerungselement
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:
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. |