2016-11-15 59 views
0
創建Toplevel小窗口部件時

我編碼的應用程序,以控制串行連接的裝置,現在我卡在GUI誤差,這裏是簡化的代碼:錯誤在Python

import Tkinter 

class PaginaPrincipale(Tkinter.Tk): 
    def __init__(self, parent): 
     Tkinter.Tk.__init__(self, parent) 

     def connetti(): 
      pagina_connessione=Tkinter.Toplevel() 
      pagina_connessione.title("Gestione connessione") 

      pagina_connessione.mainloop() 


     self.parent = parent 
     self.grid() 
     self.gestisci_connessione = Tkinter.Button(self, text="Connetti!", command=connetti) 
     self.gestisci_connessione.grid(row=0, column=0, sticky='EW') 


if __name__ == "__main__": 
    applicazione = PaginaPrincipale(None) 
    applicazione.title = 'Pannello di controllo' 
    applicazione.mainloop() 

當運行我得到這個錯誤的程序:TypeError: 'str' object is not callable

我是Python2.7的新手,我希望有人能告訴我我做錯了什麼!

+1

'applicazione.title =「Pannello迪controllo'' – ForceBru

回答

1

該小部件有一個名爲title的方法,您可以使用該方法來設置標題。但是,你是一個字符串替換此功能,當你做到這一點:

applicazione.title = 'Pannello di controllo' 

一旦你做到了這一點,任何後續嘗試調用函數title將導致錯誤你得到(即:你可以」 t「調用」一個字符串)。

相反,你需要調用title作爲一個功能:

applicazione.title('Pannello di controllo') 
+0

我注意到,錯誤也沒有出現'pagina_connessione.title(「GESTIONE CONNESSIONE 「)'並且還使用'pagina_connessione.title('Gestione connessione')' –

+0

@DavideDes:是的,只要您將標題屬性轉換爲字符串,任何時候嘗試將'title'用作函數都會出現。這是關鍵:你正在銷燬函數並用一個字符串替換它。任何時候,如果你嘗試使用它作爲一個函數,你會得到這個錯誤。 –

+0

非常感謝!我一開始並沒有這樣做。 –