1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| from tkinter import *
import tkinter as tk
root = tk.Tk()
def convert_to_int(strvar) -> [int, str]:
match strvar.get().removeprefix("-").isnumeric():
case True if int(strvar.get()) == 0:
msg = "Est trop petit"
ret = None
case True if int(strvar.get()) < 1:
msg = "Est négatif"
ret = None
case True:
msg = ""
ret = int(strvar.get())
case _:
msg = "Doit être un entier"
ret = None
return (ret, msg)
valeurs = (
tk.StringVar(),
tk.StringVar(value="45"),
tk.StringVar(value="a99"),
tk.StringVar(value="-8"), # strvar.get().isnumeric() == False ! donc pas bon retour
tk.StringVar(value="0"),
tk.StringVar(value="2.2"),
)
for valeur in valeurs:
value, msg = convert_to_int(valeur)
print("#", valeur, type(valeur), type(valeur.get()), value, msg) # si mélange de stringvar et intvar, inutile ici
if msg:
print("ERREUR pour", valeur.get(), "->", msg)
else:
# traitement de value
print(f" OK -> {value}")
... |
Partager