У меня проблема с получением идентификатора некоторых кнопок - PullRequest
0 голосов
/ 04 июля 2019

С помощью этого приложения я позже попробую управлять лампами в моей квартире.Проблема в том, что я не знаю, как получить идентификатор кнопки.Кнопки находятся в цикле, и мне нужен идентификатор, чтобы знать, какая кнопка нажата. Ошибка, которую я получаю: AttributeError: у объекта '_tkinter.tkapp' нет атрибута 'buttonOn'

Это для приложения Pythonв TKinter, чтобы контролировать некоторые лампы в моей квартире.

class Root(Tk):
 def __init__(self):
    super(Root, self).__init__()
    self.title('Lampensteuerung')
    self.geometry('1000x600')

    for l in lights:
        self.NameLamp = Label(self, text=lights[l].name)
        self.status= Label(self, text='Status:')
        self.statusLamp = Label(self, text=lights[l].on)
        self.brightness = Scale(self, from_=0, to=127, orient= HORIZONTAL)
        self.brightnessButton = Button(self, text='brightness control', width= 12, command = lambda: self.Brightness(c))
        self.buttonOn.append(Button(self, text='On', width=12, command = lambda c=l: self.LightOn(c)))
        self.buttonOff.append(Button(self, text='Off', width=12, command = lambda c=l: self.LightOff(c)))   

        self.NameLamp.grid(column=2, row=l, ipady=20, ipadx=20)
        self.status.grid(column=3, row=l, ipady=20, ipadx=20)
        self.statusLamp.grid(column=4, row=l, ipady=20, ipadx=20)
        self.brightness.grid(column=5, row=l, ipady=20, ipadx=20)
        self.brightnessButton.grid(column=6, row=l, ipady=20, ipadx=20)
        self.buttonOn.grid(column=7, row=l, ipady=20, ipadx=20)
        self.buttonOff.grid(column=8, row=l, ipady=20, ipadx=20)


def LightOn(self,c):
    if(c==1):
        lights[1].on = True
        self.statusLamp.config(text=lights[1].on)
    if(c==2):
        lights[2].on = True
        self.statusLamp.config(text=lights[2].on)
    if(c==3):
         lights[3].on = True
         self.statusLamp.config(text=lights[3].on)
    if(c==4):
        lights[4].on = True
        self.statusLamp.config(text=lights[4].on)
    if(c==5):
        lights[5].on = True
        self.statusLamp.config(text=lights[5].on)
    if(c==6):
        lights[6].on = True
        self.statusLamp.config(text=lights[6].on)
def LightOff(self,c):
    if(c==1):
        print("Licht 1 aus")

def Brightness(self,c):
    if(c==1):
        print("Helligkeit geändert")             
root = Root()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...