Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2025 18:49:03

ertedfed
Зарегистрирован: 2025-01-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter Python

Я делаю программу для школьного проекта и по непонятной причине я получаю ошибку и программа не исполняет свои функции .
Это некая база данных школы для директора. У меня есть 3 кнопки ,пока рабочие только две .На первой кнопке выводится листбокс а потом канвас с анкетой учителя. Проблема заключается в том ,что если воспользоваться второй кнопкой и выбрать класс, то канвас по некой причине станет полностью белым и вылезет ошибка. Вот код программы:

root = Tk()
root.title(“Автоматизированное рабочее место директора школы”)
root.geometry(“1200x960+500+0”)
root.resizable(True, True)
root.maxsize(1800,1600)

image = Image.open(“school.png”)
resize = image.resize((1200,960))
img = ImageTk.PhotoImage(resize)

label = Label(image=img)
label.image = img
label.place(x=-1,y=-1,anchor=NW)

teachers=[teacher_name1+“ ”+teacher_last_name1+“ ”+teacher_dad_name1+“ - ”+teacher_class1,
teacher_name2+“ ”+teacher_last_name2+“ ”+teacher_dad_name2+“ - ”+teacher_class2,
teacher_name3+“ ”+teacher_last_name3+“ ”+teacher_dad_name3+“ - ”+teacher_class3,
teacher_name4+“ ”+teacher_last_name4+“ ”+teacher_dad_name4+“ - ”+teacher_class4,
teacher_name5+“ ”+teacher_last_name5+“ ”+teacher_dad_name5+“ - ”+teacher_class5]

the_classes =
class_var = Variable(value=the_classes)

teachers_var = Variable(value=teachers)


teac_check=0
#text = Label(text=“Закройте анкету,пожалуйста!”,width=38,foreground=“red”,cursor=“X_cursor”)

def select(event):
global canvas
global text
canvas = Canvas(height=220, width=400,bg=“white”)
global teac_check
global label

canvas.place(x=700, y=60, anchor=NW)
ICON = zlib.decompress(base64.b64decode(“eJxjYGAEQgEBBiDJwZDBysAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc=”))
_, ICON_PATH = tempfile.mkstemp()
with open(ICON_PATH, “wb”) as icon_file:
icon_file.write(ICON)

global button_del

text = Label(text=“Закройте анкету,пожалуйста!”,width=38,foreground=“red”,cursor=“X_cursor”)

def enter(event):
global teac_check
text.place(x=390,y=40,anchor=NW)
teac_check += 2

list.bind(“<ButtonPress-1>”, enter)

curv1 = list.curselection()
selected1 = list.get(curv1)
#list.update_idletasks()

if(selected1==teacher_name1+“ ”+teacher_last_name1+“ ”+teacher_dad_name1+“ - ”+teacher_class1): #Анкета
teac_check+=1

canvas.create_rectangle(0,0, 400, 220,fill=“gray” )

canvas.create_rectangle(10,10, 75, 95,fill=“white” )

image = Image.open(teacher_photo1)
resize = image.resize((65,85))
img = ImageTk.PhotoImage(resize)
label = Label(image=img)
label.image = img
canvas.create_window(10,10, anchor=NW, window=label)


canvas.create_line(105, 30, 260, 30)
canvas.create_text(105, 17, anchor=NW, text=“Имя : ”+teacher_name1)
canvas.create_line(105, 60, 260, 60)
canvas.create_text(105, 47, anchor=NW, text=“Фамилия : ”+teacher_last_name1)
canvas.create_line(105 ,90, 260, 90)
canvas.create_text(105 ,77, anchor=NW, text=“Отчество : ”+teacher_dad_name1)
canvas.create_line(10,120, 70, 120 )
canvas.create_text(10, 107, anchor=NW, text=teacher_class1)
canvas.create_line(75,120, 400, 120)
canvas.create_text(75, 107, anchor = NW, text=“Место жительства : ”+teacher_home1)
canvas.create_line(10, 140, 120, 140)
canvas.create_text(10, 127, anchor=NW, text=“Год рождения : ”+teacher_year1)
canvas.create_line(130, 140, 250, 140)
canvas.create_text(130, 127, anchor=NW, text=“Стаж работы : ”+teacher_work1)
canvas.create_line(10, 160, 173, 160)
canvas.create_text(10, 147, anchor=NW, text=“Предмет : ”+teacher_subject1)
canvas.create_line(10, 180, 210, 180)
canvas.create_text(10,167, anchor=NW, text=“Номер телефона : ”+teacher_number1)
canvas.create_line(10, 200, 380, 200)
canvas.create_text(10, 187, anchor=NW, text=“Замечания : ”+teacher_fines1)
if(selected1==teacher_name2+“ ”+teacher_last_name2+“ ”+teacher_dad_name2+“ - ”+teacher_class2):

canvas.create_rectangle(0,0, 400, 220,fill=“gray” )
teac_check+=1

canvas.create_rectangle(10,10, 75, 95,fill=“white” )

image = Image.open(teacher_photo2)
resize = image.resize((65,85))
img = ImageTk.PhotoImage(resize)
label = Label(image=img)
label.image = img
canvas.create_window(10,10, anchor=NW, window=label)

canvas.create_line(105, 30, 260, 30)
canvas.create_text(105, 17, anchor=NW, text=“Имя : ”+teacher_name2)
canvas.create_line(105, 60, 260, 60)
canvas.create_text(105, 47, anchor=NW, text=“Фамилия : ”+teacher_last_name2)
canvas.create_line(105 ,90, 260, 90)
canvas.create_text(105 ,77, anchor=NW, text=“Отчество : ”+teacher_dad_name2)
canvas.create_line(10,120, 70, 120 )
canvas.create_text(10, 107, anchor=NW, text=teacher_class2)
canvas.create_line(75,120, 400, 120)
canvas.create_text(75, 107, anchor = NW, text=“Место жительства : ”+teacher_home2)
canvas.create_line(10, 140, 120, 140)
canvas.create_text(10, 127, anchor=NW, text=“Год рождения : ”+teacher_year2)
canvas.create_line(130, 140, 250, 140)
canvas.create_text(130, 127, anchor=NW, text=“Стаж работы : ”+teacher_work2)
canvas.create_line(10, 160, 173, 160)
canvas.create_text(10, 147, anchor=NW, text=“Предмет : ”+teacher_subject2)
canvas.create_line(10, 180, 210, 180)
canvas.create_text(10,167, anchor=NW, text=“Номер телефона : ”+teacher_number2)
canvas.create_line(10, 200, 390, 200)
canvas.create_text(10, 187, anchor=NW, text=“Замечания : ”+teacher_fines2)
if(selected1==teacher_name3+“ ”+teacher_last_name3+“ ”+teacher_dad_name3+“ - ”+teacher_class3):

canvas.create_rectangle(0,0, 400, 220,fill=“gray” )
teac_check+=1

canvas.create_rectangle(10,10, 75, 95,fill=“white” )

image = Image.open(teacher_photo3)
resize = image.resize((65,85))
img = ImageTk.PhotoImage(resize)
label = Label(image=img)
label.image = img
canvas.create_window(10,10, anchor=NW, window=label)

canvas.create_line(105, 30, 260, 30)
canvas.create_text(105, 17, anchor=NW, text=“Имя : ”+teacher_name3)
canvas.create_line(105, 60, 260, 60)
canvas.create_text(105, 47, anchor=NW, text=“Фамилия : ”+teacher_last_name3)
canvas.create_line(105 ,90, 260, 90)
canvas.create_text(105 ,77, anchor=NW, text=“Отчество : ”+teacher_dad_name3)
canvas.create_line(10,120, 70, 120 )
canvas.create_text(10, 107, anchor=NW, text=teacher_class3)
canvas.create_line(75,120, 400, 120)
canvas.create_text(75, 107, anchor = NW, text=“Место жительства : ”+teacher_home3)
canvas.create_line(10, 140, 120, 140)
canvas.create_text(10, 127, anchor=NW, text=“Год рождения : ”+teacher_year3)
canvas.create_line(130, 140, 250, 140)
canvas.create_text(130, 127, anchor=NW, text=“Стаж работы : ”+teacher_work3)
canvas.create_line(10, 160, 173, 160)
canvas.create_text(10, 147, anchor=NW, text=“Предмет : ”+teacher_subject3)
canvas.create_line(10, 180, 210, 180)
canvas.create_text(10,167, anchor=NW, text=“Номер телефона : ”+teacher_number3)
canvas.create_line(10, 200, 390, 200)
canvas.create_text(10, 187, anchor=NW, text=“Замечания : ”+teacher_fines3)
if(selected1==teacher_name4+“ ”+teacher_last_name4+“ ”+teacher_dad_name4+“ - ”+teacher_class4):
canvas.create_rectangle(0,0, 400, 220,fill=“gray” )
teac_check+=1

canvas.create_rectangle(10,10, 75, 95,fill=“white” )

image = Image.open(teacher_photo4)
resize = image.resize((65,85))
img = ImageTk.PhotoImage(resize)
label = Label(image=img)
label.image = img
canvas.create_window(10,10, anchor=NW, window=label)

canvas.create_line(105, 30, 260, 30)
canvas.create_text(105, 17, anchor=NW, text=“Имя : ”+teacher_name4)
canvas.create_line(105, 60, 260, 60)
canvas.create_text(105, 47, anchor=NW, text=“Фамилия : ”+teacher_last_name4)
canvas.create_line(105 ,90, 260, 90)
canvas.create_text(105 ,77, anchor=NW, text=“Отчество : ”+teacher_dad_name4)
canvas.create_line(10,120, 70, 120 )
canvas.create_text(10, 107, anchor=NW, text=teacher_class4)
canvas.create_line(75,120, 400, 120)
canvas.create_text(75, 107, anchor = NW, text=“Место жительства : ”+teacher_home4)
canvas.create_line(10, 140, 120, 140)
canvas.create_text(10, 127, anchor=NW, text=“Год рождения : ”+teacher_year4)
canvas.create_line(130, 140, 250, 140)
canvas.create_text(130, 127, anchor=NW, text=“Стаж работы : ”+teacher_work4)
canvas.create_line(10, 160, 173, 160)
canvas.create_text(10, 147, anchor=NW, text=“Предмет : ”+teacher_subject4)
canvas.create_line(10, 180, 210, 180)
canvas.create_text(10,167, anchor=NW, text=“Номер телефона : ”+teacher_number4)
canvas.create_line(10, 200, 390, 200)
canvas.create_text(10, 187, anchor=NW, text=“Замечания : ”+teacher_fines4)
if(selected1==teacher_name5+“ ”+teacher_last_name5+“ ”+teacher_dad_name5+“ - ”+teacher_class5): #Анкета
canvas.create_rectangle(0,0, 400, 220,fill=“gray” )
teac_check+=1

canvas.create_rectangle(10,10, 75, 95,fill=“white” )

image = Image.open(teacher_photo2)
resize = image.resize((65,85))
img = ImageTk.PhotoImage(resize)
label = Label(image=img)
label.image = img
canvas.create_window(10,10, anchor=NW, window=label)

canvas.create_line(105, 30, 260, 30)
canvas.create_text(105, 17, anchor=NW, text=“Имя : ”+teacher_name5)
canvas.create_line(105, 60, 260, 60)
canvas.create_text(105, 47, anchor=NW, text=“Фамилия : ”+teacher_last_name5)
canvas.create_line(105 ,90, 260, 90)
canvas.create_text(105 ,77, anchor=NW, text=“Отчество : ”+teacher_dad_name5)
canvas.create_line(10,120, 70, 120 )
canvas.create_text(10, 107, anchor=NW, text=teacher_class5)
canvas.create_line(75,120, 400, 120)
canvas.create_text(75, 107, anchor = NW, text=“Место жительства : ”+teacher_home5)
canvas.create_line(10, 140, 120, 140)
canvas.create_text(10, 127, anchor=NW, text=“Год рождения : ”+teacher_year5)
canvas.create_line(130, 140, 250, 140)
canvas.create_text(130, 127, anchor=NW, text=“Стаж работы : ”+teacher_work5)
canvas.create_line(10, 160, 173, 160)
canvas.create_text(10, 147, anchor=NW, text=“Предмет : ”+teacher_subject5)
canvas.create_line(10, 180, 210, 180)
canvas.create_text(10,167, anchor=NW, text=“Номер телефона : ”+teacher_number5)
canvas.create_line(10, 200, 380, 200)
canvas.create_text(10, 187, anchor=NW, text=“Замечания : ”+teacher_fines5)

list.configure(state=“disabled”)
list.configure(cursor=“X_cursor”)
#button1.configure(state=“disabled”)
button_del = Button(height=1, width=2, background=“red”,text=“X”, command=delete)
canvas.create_window(350, 20, anchor=NW, window=button_del)

def delete():

canvas.delete(“all”)
canvas.configure(height=0,width=0)
canvas.update_idletasks()
list.configure(state=“normal”)
text.destroy()
list.configure(cursor=“”)

def select_class(event):
global scrolbar
global list_pupils
global button_del_class
for c in clases:
clases.insert(END, c)

curv2 = clases.curselection()
selected2 = clases.get(curv2)
clases.update_idletasks()
#canvas = Canvas(height=200, width=100,bg=“white”)
#canvas.place(x = 700, y = 300, anchor=NW)
selected_pupils_var =

if(selected2==class1):
selected_pupils = [A1_child1,A1_child2,A1_child3,A1_child4,A1_child5,
A1_child6,A1_child7,A1_child8,A1_child9,A1_child10,]
#selected_pupils_var1 = Variable(value=selected_pupils)
selected_pupils_var+=selected_pupils

if(selected2==class2):
selected_pupils = [Б2_child1,Б2_child2,Б2_child3,Б2_child4,Б2_child5,
Б2_child6,Б2_child7,Б2_child8,Б2_child9,Б2_child10]
#selected_pupils_var2 = Variable(value=selected_pupils)
selected_pupils_var+=selected_pupils

selected_pupils_var0 = Variable(value=selected_pupils_var)
list_pupils = Listbox(listvariable=selected_pupils_var0, selectmode=SINGLE, height=5,width= 25)
list_pupils.place(x=700, y=300, anchor=NW)

scrolbar = ttk.Scrollbar(orient=“vertical”, command=list_pupils.yview) #скроллбар
scrolbar.place(x=855, y=300, anchor=NW, height=84)
list_pupils=scrolbar.set
button_del_class = Button(height=1,width=2, text=“X”, background=“red”, command=delete_class_people)
button_del_class.place(x=870, y=300, anchor=NW)

def delete_class_people():
scrolbar.destroy()
list_pupils.destroy()
button_del_class.destroy()

def teacher():

global list
global button_del1_list

list = Listbox(listvariable=teachers_var, selectmode=SINGLE,height=5,width=45, state=“normal”)
list.place(x = 390, y=60, anchor=NW)
list.bind(“<<ListboxSelect>>”, select)
button_del1_list = Button(height=1, width=2,text=“X”, background=“red”, command=delete_tec)
button_del1_list.place(x = 663, y = 61, anchor=NW)

#button1.configure(state=“disabled”)
button1.configure(command=delete_tec)

#def delete_only_tec():
#if(teac_check==1):
# canvas.delete(“all”)
#canvas.configure(height=0,width=0)
#canvas.update_idletasks()


#list.configure(cursor=“”)
#if(teac_check==2):
#text.destroy()
#canvas.delete(“all”)
#canvas.configure(height=0,width=0)
#canvas.update_idletasks()
#list.configure(state=“normal”)
#text.destroy()
#list.configure(cursor=“”)


#list.configure(state=“normal”)
#list.configure(cursor=“”)
#list.destroy()
#label.destroy()
#button_del1_list.destroy()

#button1.configure(command=teacher)

def delete_tec():
if(teac_check==1):
canvas.delete(“all”)
canvas.configure(height=0,width=0)
canvas.update_idletasks()

text.destroy()
#list.configure(cursor=“”)
if(teac_check==2):
text.destroy()
list.configure(state=“normal”)
button_del1_list.destroy()
list.configure(cursor=“”)
list.destroy()

#list.configure(state=“normal”)


canvas.configure(height=0,width=0)
canvas.update_idletasks()
#button1.configure(state=“normal”)
button_del.destroy()
label.destroy()
text.destroy()
button1.configure(command=teacher)

def classes():
global clases
global button_del2
clases = Listbox(listvariable=class_var, selectmode=SINGLE, height=5,width=25)
clases.place(x=390, y=180,anchor=NW)
clases.bind(“<<ListboxSelect>>”, select_class)
button_del2 = Button(height=1,width=2, text=“X”, background=“red”, command=delete_clas)
button_del2.place(x =543, y=181, anchor=NW)

def delete_clas():
scrolbar.destroy()
list_pupils.destroy()
button_del_class.destroy()

clases.destroy()
button_del2.destroy()

button1 = Button(text=“Преподавательский состав”,height=5, width=30, command=teacher )
button1.place(x=30, y= 60,anchor=NW)
button2 = Button(text=“Классы”, width=30,height=5, command=classes)
button2.place(x=30, y= 180,anchor=NW)
button3= Button(text=“Новости министерства образования”, width=30, height=5)
button3.place(x=30, y= 300,anchor=NW)

root.mainloop()


Вот ошибка программы:

Traceback (most recent call last):
File “C:\Python311\Lib\tkinter\__init__.py”, line 1948, in __call__
return self.func(*args)
^^^^^^^^^^^^^^^^
File “c:\Users\����\Desktop\1234\python\project\project.py”, line 83, in select
selected1 = list.get(curv1)
^^^^^^^^^^^^^^^
File “C:\Python311\Lib\tkinter\__init__.py”, line 3253, in get
return self.tk.call(self._w, ‘get’, first)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: bad listbox index “”: must be active, anchor, end, @x,y, or a number

Перепробовал много методов решения этой ошибки, но ничего не помогает.

Офлайн

#2 Янв. 31, 2025 18:50:19

ertedfed
Зарегистрирован: 2025-01-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter Python

Надеюсь, кто-то ответит, потому что в интернете ничего найти не могу. Буду проверять форум каждый день!

Офлайн

#3 Янв. 31, 2025 20:58:28

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 82
Репутация: +  2  -
Профиль   Отправить e-mail  

Tkinter Python

ertedfed
Надеюсь, кто-то ответит
Молодой человек, вы имеете немножко совести? Как можно выкладывать такую портянку, неотформатированную, нечитабельную, с невразумительным заголовком? Это же издевательство над теми, кто рискнёт ознакомится с вашим сообщением. И шо, после такого наплевательского отношения к форумчанам вы имеете наглость просить чтобы кто-то вам ответил? Так нет же, после такого с вами никто не будет разговаривать. Сами разбирайтесь со своими ошибками.
Кто такая curv1? Что она получает из list.curselection()? Какое-то значение или какой-то об'ект? Какого типа?

Отредактировано Alex.Pro. (Фев. 1, 2025 07:59:34)

Офлайн

#4 Фев. 1, 2025 13:04:57

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1385
Репутация: +  123  -
Профиль   Отправить e-mail  

Tkinter Python

[code python]между этими тегами вставлять код на форуме[/code]

Офлайн

#5 Май 19, 2025 10:36:39

gemmalyly
Зарегистрирован: 2023-03-27
Сообщения: 3
Репутация: +  -2  -
Профиль   Отправить e-mail  

Tkinter Python

It allows you to create interactive applications with components like windows, buttons, labels, and menus. Its simplicity makes it perfect for rapid prototyping, smash karts small projects, or even complex applications when paired with other Python libraries.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version