tkinter
Das Widget für den Tkinter-Eintrag
Suche…
Syntax
- entry = tk.Entry ( Parent , ** kwargs )
- entry.get ()
- entry.insert (Index, "Wert")
- entry.delete (start_index, end_index)
- entry.bind (event, callback)
Parameter
Parameter | Beschreibung |
---|---|
Elternteil | tkinter-Widgets existieren in einer Hieararchie. Mit Ausnahme des Stammfensters haben alle Widgets ein übergeordnetes Element. Einige Online-Tutorials nennen dies "Master". Wenn das Widget mit pack , place oder grid zum Bildschirm hinzugefügt wird, wird es in diesem übergeordneten Widget angezeigt |
Breite | Die Breite gibt die gewünschte Breite des Widgets basierend auf einer durchschnittlichen Zeichenbreite an. Bei Schriftarten mit variabler Breite basiert dies auf der Breite des Nullzeichens ( 0 ). Der Standardwert ist 20. Beachten Sie, dass die tatsächliche Breite je nach dem Hinzufügen zum Bildschirm größer oder kleiner sein kann. |
Bemerkungen
In diesen Beispielen wird davon ausgegangen, dass tkinter entweder mit import tkinter as tk
(Python 3) oder import Tkinter as tk
(Python 2) import Tkinter as tk
.
Eintrags-Widget erstellen und einen Standardwert festlegen
entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")
Den Wert eines Entry-Widgets ermitteln
Der Wert eines Eintrags-Widgets kann mit der get
Methode des Widgets abgerufen werden:
name_entry = tk.Entry(parent)
...
name = name_entry.get()
Optional können Sie eine Instanz einer StringVar
und den Wert von der StringVar
anstatt vom Widget:
name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()
Validierung zu einem Entry-Widget hinzufügen
Um die Zeichen, die in ein Eintrags-Widget eingegeben werden können, einzuschränken, können zum Beispiel nur Zahlen, ein Validierungsbefehl, zum Eintrag hinzugefügt werden. Ein validate-Befehl ist eine Funktion, die True
wenn die Änderung akzeptiert wird, andernfalls False
. Diese Funktion wird jedes Mal aufgerufen, wenn der Inhalt des Eintrags geändert wird. An diese Funktion können verschiedene Argumente übergeben werden, wie die Art der Änderung (Einfügen, Löschen), der eingefügte Text, ...
def only_numbers(char):
return char.isdigit()
validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))
Die validate
Option bestimmt den Ereignistyp, der die Validierung auslöst. Hierbei handelt es sich um einen beliebigen Tastendruck im Eintrag. Das '%S'
in der validatecommand -Option bedeutet, dass das eingefügte oder gelöschte Zeichen als Argument an die Funktion only_numbers
wird. Die vollständige Liste der Möglichkeiten finden Sie hier .
Erste Schritte aus dem Entry Widget
Bei Verwendung der .get () -Methode wird alles, was sich im Eintragswiderstand befindet, in einen String umgewandelt. Unabhängig von der Art der Eingabe (es kann sich um eine Zahl oder einen Satz handeln), ist das Ergebnis eine Zeichenfolge. Wenn der Benutzer 4 eingibt, wird die Ausgabe wie in einer Zeichenfolge "4" sein. Um ein int aus einem Entry Widget zu erhalten, rufen Sie zuerst die .get () -Methode auf.
What_User_Wrote = Entry.get()
Jetzt konvertieren wir diese Zeichenfolge in eine int wie folgt:
Convert_To_Int = int(What_User_Wrote)
Wenn Sie Zeit sparen möchten, können Sie einfach Folgendes tun:
Convert_To_Int = int(Entry.get())
Sie können die obige Methode verwenden, wenn Sie str nicht in int konvertieren möchten.