2012-10-06 43 views
0

我用盡閱讀儘可能多篇關於這個問題,我可以,但無法找到任何可以幫助我。在我的代碼中,我創建了一個EntryWidget類,其中包含一個入口小部件,並且在我的應用程序的主類Controller中創建了一個名爲self.entry的EntryWidget類實例。我正在嘗試編寫一個方法,該方法將成爲一個OK按鈕的命令,該按鈕主要從入口小部件獲取文本,然後對其進行處理。這個代碼是從主類控制器:PYTHON的Tkinter - 設置和訪問入口小部件的文本作爲變量

 def ok(self): 
     self.input = self.entry.get() 
     self.command = "" 

錯誤:

 AttributeError: EntryWidget instance has no attribute 'get' 

的想法是,文本輸入,然後單擊OK按鈕被擊中它調用此方法。對不起,如果這之前已經問過,但我已閱讀其他答案,他們不幫助。

感謝

回答

2

如果您EntryWidget類沒有繼承Tkinter.Entry,您需要定義您EntryWidgetget()方法。錯誤說self.entryEntryWidget實例,但不包含get()方法。

+0

三江源,你就是絕對正確的,它繼承了框架。我將如何定義get方法? – chris

+0

@ user1710566我不知道你正在嘗試用'GET'方法做,而是簡單地在'EntryWidget'類所有你需要做的就是把'高清得到(個體經營)定義它:#做一些你想要在你的'WidgetEntry'類中。 –

+0

我想從框中獲取文本作爲一個字符串,我可以分配給一個變量和使用。會喜歡的工作: def get(self): input = entry.Tkinter.Entry.get() 返回輸入 – chris

0

我自己寫的一個小功能,允許用戶輸入一個值轉換成tkinter.Entry,然後函數返回用戶的輸入。

def getInput(title, message): 
    class inputGUI(tkinter.Tk): 
     def __init__(self): 
      tkinter.Tk.__init__(self) 
      self.title(title) 
      self.l=tkinter.Label(self,text=message, width = 30, pady = 10, padx = 5).pack() 
      self.e=tkinter.Entry(self, width = 30) 
      self.e.pack() 
      self.e.focus() 
      self.gap=tkinter.Label(self,text="", width = 50, pady = 0, padx = 5).pack() 
      self.b=tkinter.Button(self,text='Submit',command=self.cleanup, width = 20, pady = 10, padx = 5).pack() 
      self.gap=tkinter.Label(self,text="", width = 30, pady = 0, padx = 5).pack() 
     def cleanup(self): 
      self.userInput=self.e.get() 
      self.destroy() 
    root = inputGUI() 
    root.focus() 
    root.wait_window(root) 
    valueOut = root.userInput 
    return valueOut 

注意:我知道沒有入口驗證,但是這應該很容易添加。

相關問題