0
我试图创建2个输入区域(用于登录和密码)和确认按钮(在按下此按钮后 - 代码将读取区域值)的框架。但我不知道如何在课堂上不使用某些全局函数来完成课程App
。如何正确处理确认事件?
from Tkinter import *
class App:
def __init__(self, master):
frame_credentials = Frame(master, width=100, height=200)
frame_credentials.pack()
self.label_login = Label(frame_credentials, text='login')
self.text_login = Entry(frame_credentials, width=15)
self.label_pass = Label(frame_credentials, text='password')
self.text_pass = Entry(frame_credentials, show="*", width=15)
self.button_ok = Button(frame_credentials, text="Login")
self.label_login.grid(row=0, column=0)
self.text_login.grid(row=1, column=0)
self.label_pass.grid(row=2, column=0)
self.text_pass.grid(row=3, column=0)
self.button_ok.grid(row=0, column=1, rowspan=4)
self.button_ok.bind("<Button-1>", enter_in)
def enter_in(self):
print self.text_login, self.text_pass
root = Tk()
app = App(root)
root.mainloop()
我不明白你的问题。您的示例代码不使用任何全局函数。 – Bakuriu
比你运行这个代码,你会得到错误 - “全球名称”enter_in'未定义“。如果我将在类App外创建函数“enter_in” - 它将起作用。但是它如何在类App中使用? – Jurijs
这是因为它应该是'self.button_ok.bind(“”,self.enter_in)'。你定义了*方法*而不是全局函数。在python中,你*不*具有“隐式自我”,你必须总是引用'self'来访问实例属性或方法。 –
Bakuriu