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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow