tkinter
Widżet wejścia Tkinter
Szukaj…
Składnia
- entry = tk.Entry ( parent , ** kwargs )
- entry.get ()
- entry.insert (indeks, „wartość”)
- entry.delete (indeks_początkowy, indeks_początkowy)
- entry.bind (zdarzenie, oddzwanianie)
Parametry
Parametr | Opis |
---|---|
rodzic | Widżety tkinter istnieją w hierarchii. Z wyjątkiem okna głównego wszystkie widżety mają element nadrzędny. Niektóre samouczki online nazywają to „mistrzem”. Gdy widżet zostanie dodany do ekranu z pack , place lub grid , pojawi się w tym widżecie nadrzędnym |
szerokość | Szerokość określa pożądaną szerokość widżetu na podstawie średniej szerokości znaku. W przypadku czcionek o zmiennej szerokości jest to oparte na szerokości znaku zerowego ( 0 ). Domyślnie jest to 20. Zauważ, że rzeczywista szerokość może być większa lub mniejsza w zależności od tego, jak zostanie dodana do ekranu. |
Uwagi
W tych przykładach założono, że tkinter został zaimportowany za pomocą import tkinter as tk
(python 3) lub import Tkinter as tk
(python 2).
Tworzenie widżetu wejścia i ustawienie wartości domyślnej
entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")
Uzyskiwanie wartości widżetu wejścia
Wartość widżetu wejściowego można uzyskać za pomocą metody get
widżetu:
name_entry = tk.Entry(parent)
...
name = name_entry.get()
Opcjonalnie możesz powiązać instancję StringVar
i pobrać wartość z StringVar
zamiast z widżetu:
name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()
Dodawanie sprawdzania poprawności do widżetu wejścia
Aby ograniczyć znaki, które można wpisać w widżecie wprowadzania, na przykład tylko liczby, do wpisu można dodać polecenie sprawdzania poprawności. Polecenie sprawdzania poprawności to funkcja zwracająca wartość True
jeśli zmiana zostanie zaakceptowana, w przeciwnym razie False
. Ta funkcja będzie wywoływana za każdym razem, gdy treść wpisu zostanie zmodyfikowana. Do tej funkcji można przekazać różne argumenty, takie jak rodzaj zmiany (wstawianie, usuwanie), wstawiany tekst, ...
def only_numbers(char):
return char.isdigit()
validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))
Opcja validate
określa typ zdarzenia, które uruchamia sprawdzanie poprawności, tutaj jest to każde naciśnięcie klawisza we wpisie. '%S'
w opcji validatecommand oznacza, że wstawiony lub usunięty znak jest przekazywany w argumencie do funkcji only_numbers
. Pełna lista możliwości znajduje się tutaj .
Getting int From Entry Widget
Podczas korzystania z metody .get () wszystko, co znajduje się w widgecie wejściowym, zostanie przekonwertowane na ciąg znaków. Na przykład, niezależnie od rodzaju danych wejściowych (może to być liczba lub zdanie), wynikiem będzie ciąg znaków. Jeśli użytkownik wpisze 4, wynikiem będzie „4” jak w ciągu. Aby uzyskać wartość int z widżetu wejścia, najpierw wywołaj metodę .get ().
What_User_Wrote = Entry.get()
Teraz konwertujemy ten ciąg na int tak:
Convert_To_Int = int(What_User_Wrote)
Podobnie, jeśli chcesz zaoszczędzić czas, możesz po prostu:
Convert_To_Int = int(Entry.get())
Możesz użyć powyższej metody, jeśli nie chcesz konwertować str na int.