Rozdział 16 · Tworzenie fajnych aplikacji z Tkinter

Wiele pól wejściowych

Entry dla jednej linii, Text — dla kilku: dwa sposoby uzyskania tekstu od użytkownika.

Wiele pól wejściowych

pole wejściowe (Entry) to tekst jednolinijkowy Pole, w którym użytkownik może coś wpisać:

polya_vvoda.py
import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text=„Wprowadź imię:”)
label.pack()

entry = tk.Entry(root)
entry.pack()

def pokazat_imya():
    imya = entry.get()   # wyjmij tekst z pola
    print(f"Cześć, {imya}!")

button = tk.Button(root, text=„Wyślij”, command=pokazat_imya)
button.pack()

root.mainloop()

entry.get() zwraca aktualny tekst pola — zwykły łańcuch znaków, z którym można pracować jak z każdym innym (rozdział 8). entry.insert(0, "текст") wstawia tekst programowo, entry.delete(0, "end") oczyszcza pole.

One łańcuch znaków SMS. Linijka po linijce

Entry nadaje się do krótkiego tekstu o jednej linijce – nazwy, numer, hasło. Do tekstu wielolinijowego użyj innego widżetu, Text:

Entry z tekstem „Cartesian” obok Text z trzech linii
Entry — zawsze jedna łańcuch znaków; Text — tyle linijek, ile chcesz. Przykład wyglądu w środowisku kursu. Na twoim systemie operacyjnym czcionki, rozmiary i motywy mogą się nieco różnić.
mnogostrochnyj_tekst.py
text_box = tk.Text(root, height=5, width=30)
text_box.pack()

def pokazat_tekst():
    content = text_box.get("1.0", "end-1c")   # od początku do końca, bez końca \n
    print(repr(content))
Indeks „1.0”
U Text własny system indeksów: "1.0" oznacza „łańcuch znaków 1, symbol 0” float z rozdziału 4 — po prostu tekstowa etykieta pozycji, a zwykła indeksacja wierszy Python (text[0]) Text nie dotyczy.
„end” kontra „end-1c”
Text zawsze dodaje jeden ostatni link na końcu swojej zawartości. .get("1.0", "end") zawiera ten dodatek \n, że użytkownik nie napisał. Jeśli potrzebujesz tekstu widocznego dla użytkownika bez tego technicznego dodatku, użyj .get("1.0", "end-1c") („koniec minus jeden znak”
Praktyka: Entry i Text
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →