Найти - Пользователи
Полная версия: Tkinter Python
Начало » Python для экспертов » Tkinter Python
1
ertedfed
Я делаю программу для школьного проекта и по непонятной причине я получаю ошибку и программа не исполняет свои функции .
Это некая база данных школы для директора. У меня есть 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

Перепробовал много методов решения этой ошибки, но ничего не помогает.
ertedfed
Надеюсь, кто-то ответит, потому что в интернете ничего найти не могу. Буду проверять форум каждый день!
Alex.Pro.
ertedfed
Надеюсь, кто-то ответит
Молодой человек, вы имеете немножко совести? Как можно выкладывать такую портянку, неотформатированную, нечитабельную, с невразумительным заголовком? Это же издевательство над теми, кто рискнёт ознакомится с вашим сообщением. И шо, после такого наплевательского отношения к форумчанам вы имеете наглость просить чтобы кто-то вам ответил? Так нет же, после такого с вами никто не будет разговаривать. Сами разбирайтесь со своими ошибками.
Кто такая curv1? Что она получает из list.curselection()? Какое-то значение или какой-то об'ект? Какого типа?
xam1816
[code python]между этими тегами вставлять код на форуме[/code]
gemmalyly
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.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB