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