#python #html #tkinter
Вопрос:
Я пытаюсь создать приложение для викторины с помощью tkinter. Я столкнулся с проблемой. Кто-нибудь может мне помочь, пожалуйста
def incorrect(self):
global lb
lb=Label(self.root, text="Incorrect",font='50',height='1')
lb.place(x=300,y=480)
def qn2(self):
global l2,bc,bs,bp,bne,total,l,lb
l1.destroy()
bg.destroy()
bv.destroy()
bf.destroy()
bn.destroy()
l.destroy()
lb.destroy()
Ошибка:
lb.destroy()
NameError: name 'lb' is not defined
Кто-нибудь может мне помочь, пожалуйста. Спасибо!
Комментарии:
1. Если вы используете класс, почему бы вам не сделать
self.lb
это вместо того, чтобы делать его глобальным2. если я это сделаю, появится ошибка типа : self.lb.destroy() Ошибка атрибута: объект «Вопросы» не имеет атрибута «lb»
3. ты должен
self.lb=Label(..)
это сделать . Сделайте его частью класса, чтобы его можно было использовать в любом месте4. Просто потому, что вы пишете
global x
внутри функцииx
, глобальная переменная не существует. Он говорит только Python: »x
внутри этой функции означает глобальноеx
, если таковое имеется, а не что-либо локальное». Аналогичная вещь происходит с атрибутами класса; вы можете это сделать, толькоself.lb.destroy()
если что-то присвоило значениеself.lb
раньше. В любом случае, вам нужно подумать о том, что произойдет, еслиincorrect
не позвонить раньшеqn2
.5. Вот как это было сделано, и это показало,что ошибка self.lb=Метка(self.root,текст=»Неверно», шрифт=’50’, высота=’1′) self.lb.место(x=300, y=480)
Ответ №1:
Привет, вы можете определить ld и l вне функции def, и это будет работать нормально
You can make code bocks with this ```
Подобный этому
def incorrect():
global lb
lb.place(x=300,y=480)
def qn2():
global l2,bc,bs,bp,bne,total,l,lb
l1.destroy()
bg.destroy()
bv.destroy()
bf.destroy()
bn.destroy()
l.destroy()
lb.destroy()
lb=Label(self.root, text="Incorrect",font='50',height='1')
Вы можете удалить себя
Комментарии:
1. Вы можете разместить метки, вызвав функцию позже
2. Да! Я пытался, но все равно это не работает
3. Это
Label
4. Здесь много ошибок. Это
def
неDef
так , функция определяется какlableplacer()
, но вызывается какLableplacer()
5. эй, это действительно сработало! спасибо @new_to_code и спасибо всем