Я пытаюсь сделать программу для отображения метки в графическом интерфейсе 'HI'
только после нажатия кнопки 'CLICK'
в том же графическом интерфейсе.Щелкнуть по метке в том же gui после нажатия кнопки
Мой код:
import Tkinter as tki
class App(object):
def __init__(self,root):
self.root = root
txt_frm = tki.Frame(self.root, width=900, height=900)
txt_frm.pack(fill="both", expand=True)
button3 = tki.Button(txt_frm,text="CLICK", command = self.retrieve_inpu)
button3.grid(column=0,row=2)
def retrieve_inpu(self):
label = tki.Label(txt_frm,text='HI')
label.grid(column=0,row=3)
root = tki.Tk()
app = App(root)
root.mainloop()
Но я получаю сообщение об ошибке, как:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "C:/Python27/teste.py", line 14, in retrieve_inpu
label = tki.Label(txt_frm,text='HI')
NameError: global name 'txt_frm' is not defined
Пожалуйста, помогите мне, чтобы отобразить метку 'HI'
в том же графическом интерфейсе после нажатия на кнопку 'CLICK'
.
мог u, пожалуйста, перепечатайте весь код? потому что все-таки я получаю ту же ошибку. –
Это потому, что при создании кнопки вы также должны использовать 'self.txt_frm':' button3 = tki.Button (self.txt_frm, ...) '. 'txt_frm' теперь является атрибутом экземпляра' App', поэтому к нему всегда нужно обращаться через 'self'. – iCodez