Tkinter

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Задача
Создать окно entry в Tkinterю При вводе 7 цифр они должны быть записаны в список sp. Окно очищается и все по новой. Если первая цифра 2 то производится запись в словарь где ключ 2 а значение предыдущий заполненный список.
Код:
from tkinter import *
from tkinter import ttk
sp = []
sl = {}


def check(*args):
    #print(name)
    ff = name.get()
    print(ff[0])
    if ff[0] == 2:
        sl[ff] = s
        print(sl)
        name_entry.delete(0, last= END)
    if len(ff) == 7:
        sp.append(ff)
        print(sp)
        name_entry.delete(0, last= END)
      
    
        
 
root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")
 
name = StringVar()
 
name_entry = ttk.Entry(textvariable=name)
name_entry.pack(padx=5, pady=5, anchor=NW)
name_entry.focus_set()

# отслеживаем изменение значения переменной name
name.trace_add("write", check)
 
root.mainloop()

Если список благополучно заполняется то if ff[0] == 2: не работае хотя принт выше показывает что ff[0] == 2.

И второй вопрос. Как выйти из ф при ff[0] == 2
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
if ff[0] == 2: это условие не выполниться никогда, так как в ff строка
вот так нужно, if ff[0] == "2":, дальше у вас будет ошибка, что s не определена...
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Нашёл ошибку, надо if int(ff[0]) == 2:
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Нашёл ошибку, надо if int(ff[0]) == 2:
ну или так
 

Форум IT Специалистов