2015-08-23 68 views

回答

0

你必須保存到窗口小部件,這就要求創建窗口小部件,奠定它在兩個步驟的引用:

self.label = tk.Label(...) 
self.label.grid(row=1, column=1) 
... 
def removelabel(label): 
    label.grid_remove() 
... 
removelabel(self.label) 
0

下面的語句甚至不會編譯

self.label(text='message').grid(row=1,column=1) 

有了這個聲明,你基本上試圖從另一個函數label返回的對象調用函數grid,這可能不是wh在你想要的。

您可能希望創建一個Label控件,然後才電網它:

self.label = Label(...) 
self.label.grid(...) 

那麼你的代碼應該工作。

需要注意的是,如果你直接調用grid在類Label的構造函數:

self.label = Label(...).grid(...) 

因爲grid函數返回Noneself.label也將是None,你將有類似如下的錯誤:

TypeError: 'NoneType' object has no attribute 'grid_forget'

這個錯誤在tkinter的初學者中很常見。

+0

這不會改變我的腳本。在我的實際腳本中有兩層,但我縮短了這個網站。原來這是一個壞主意 – sneakytreesnake

+0

@sneakytreesnake根據你給我們的信息,你向我們展示的代碼不會簡單地工作,因爲它沒有意義。我在回答中提出的建議應該至少糾正您向我們展示的問題。如果你還有其他問題,我不知道。 – nbro

相關問題