Задача написать несколько таймеров в графической оболочке tkinter в стиле ООП.
Проблема встала в обработке нажатия кнопки
self.button.bind('<Button-1>',start)
Функция обработки кнопки описана ниже,но не видит и выдает ошибку:
Traceback (most recent call last): File "D:\Python34\fizio.py", line 59, in <module> Kab1=Kabinka("Кабинка №1: ") File "D:\Python34\fizio.py", line 25, in __init__ self.button.bind('<Button-1>',start) NameError: name 'start' is not defined
Подскажите как можно оформить обработку кнопок в стиле ООП ?
Весь код:
from tkinter import * import time class Kabinka: def __init__(self,text_kab): self.frame=Frame(root,width=200,heigh=200,bg='green',bd=5) self.frame.pack() self.label=Label(self.frame,font="sans 20",bg="black",fg="red") self.label['text']=text_kab self.label.pack(side='left') self.button=Button(self.frame,text="Пуск/Стоп") self.button.pack(side='right') self.v=StringVar() self.ent1=Entry(self.frame,textvariable = self.v,bg="white",fg="black",width=4,bd=7) self.ent1.pack(side="top") self.v.set("0") self.s = self.v.get() self.number=int(self.s) self.label['text']=text_kab+'Остановлена' self.button.bind('<Button-1>',start) self.start__='off' self.current=0 def start(self,event): if self.start__=="off": self.start__="on" self.current=time.clock def window_deleted(): #print('Окно закрыто') root.destroy() # явное указание на выход из программы def tick(): label_clock.after(200, tick) label_clock['text'] = time.strftime('%H:%M:%S') root=Tk() root.title('Кабинет ФизиоТерапии') root.geometry('1000x600') # ширина=500, высота=400, x=300, y=200 root.protocol('WM_DELETE_WINDOW', window_deleted) # обработчик закрытия окна label_clock = Label(font='sans 100',bg='black',fg='yellow') label_clock.after_idle(tick) #root.grab_set #root.resizable(True, False) # размер окна может быть изменен только по горизонтали label_clock.pack(fill="both") Kab1=Kabinka("Кабинка №1: ") Kab2=Kabinka("Кабинка №2: ") Kab3=Kabinka("Кабинка №3: ") Kab4=Kabinka("Кабинка №4: ") Kab5=Kabinka("Кабинка №5: ") Kab6=Kabinka("Кабинка №6: ") Kab7=Kabinka("Кабинка №7: ") Kab8=Kabinka("Кабинка №8: ") Kab9=Kabinka("Кабинка №9: ") Kab10=Kabinka("Кабинка №10: ") root.mainloop()
