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:
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