Rysowanie w Turtle - Okno wprowadzania danych - textinput i numinput
Turtle udostępnia dwa okienka do wprowadzania danych - textinput() i numinput()
textinput
(dokumentacja: textinput )

Składnia:
textinput(title, prompt)
title – string prompt – string
import turtle napis = turtle.textinput('Opis figury', 'Napis') print('Napis:', napis) turtle.mainloop()
Okno pozwala na wpisanie dowolnego tekstu i zatwierdzenie klawiszem Enter lub przyciskiem Ok. Przycisk Cancel zwraca None więc sprawdzając is None można wykryć anulowanie.
Liczba wprowadzona w tym oknie jest traktowana jak zwykły tekst i nie jest ona zamieniana na int lub float. Nie jest też sprawdzane czy liczba jest poprawna i czy nie wykracza poza jakiś przedział.
Nie ma też możliwości podania tekstu domyślnego aby można było go tylko zatwierdzić lub tekstu poprzednio wprowadzonego aby można go było zmienić w oknie.
numinput
(dokumentacja: numinput )


import turtle ilosc = turtle.numinput('Powtarzanie figury', 'Ilość') print('Ilość:', ilosc) turtle.mainloop()
Okno pozwala na wpisanie liczby i zatwierdzenie klawiszem Enter lub przyciskiem Ok. Przycisk Cancel zwraca None więc sprawdzając is None można wykryć anulowanie.
Okno nie pozwala na wprowadzenie tekstu Liczba wprowadzona w tym oknie jest traktowana jak zwykły tekst. Nie jest ona zamieniana na liczbę int lub float. Nie jest też sprawdzane czy liczba jest poprawna i czy nie wykracza poza jakiś przedział.
Nie ma też możliwości podania tekstu domyślnego aby można było go tylko zatwierdzić lub tekstu poprzednio wprowadzonego aby można go było zmienić w oknie.
import turtle ilosc = turtle.numinput('Powtarzanie figury', 'Ilość', 5) if ilosc is not None: print('(1) Ilość:', ilosc) else: print('(1) brak') if ilosc: print('(2) Ilość:', ilosc) else: print('(2) brak') turtle.mainloop()
Jeśli chcemy użyć do zmiany istniejącej wartości to lepiej zastosować osobną zmienną na wynik aby nie nadpisać oryginalnej wartości wartością None gdy wciśniemy Cancel
import turtle ilosc = 5 nowa_ilosc = turtle.numinput('Powtarzanie figury', 'Ilość', ilosc) if nowa_ilosc is not None: ilosc = nowa_ilosc print('Ilość:', ilosc) turtle.mainloop()
Uwaga: Lepiej sprawdzać if zmienna is None: niż if zmienna: bo to ostatnie traktuje pusty tekst oraz wartość zero tak samo jak None - czyli anulowanie wprowadzania - co nie zawsze jest porządane.
import turtle ilosc = turtle.numinput('Powtarzanie figury', 'Ilość') if ilosc is not None: print('(1) ilość:', ilosc) else: print('(1) zrezygnowano z wprowadzania danych') if ilosc: print('(2) ilość:', ilosc) else: print('(2) zrezygnowano z wprowadzania danych') napis = turtle.numinput('Powtarzanie figury', 'Ilość') if napis is not None: print('(1) napis:', napis) else: print('(1) zrezygnowano z wprowadzania danych') if napis: print('(2) napis:', napis) else: print('(2) zrezygnowano z wprowadzania danych') turtle.mainloop()
Podobne wpisy
Starsze:
- Rysowanie kwiatka z użyciem żółwika w Pythonie
- Rysowanie kolorowego okręgu z Turtle
- Rysowanie planu mieszkania za pomocą Turtle w Pythonie
Nowsze:
Wpisy jeszcze nie gotowe:
Galeria
Figury
- Rysowanie z Turtle - Okrąg, Łuk, Koło i Elipsa
- Rysowanie z Turtle - Romb, Trapez i Gwiazda
- Rysowanie z Turtle - Wielobok
- Rysowanie z Turtle - Schodki
- Rysowanie z Turtle - Kwadrat, okrąg i inne figury
- Rysowanie z Turtle - Inne
Tkinter
- Rysowanie z Turtle - Wprowadzanie danych z textinput i numinput
- Rysowanie z Turtle - Płótno czyli Canvas i inne obiekty z Tkinter
- Rysowanie z Turtle - Wait On Click
Internet
Inne
Spis - powyższe linki na osobnej stronie
