2016-11-15 4 views
0

Я кодирование приложения для управления последовательного подключенного устройства, прямо сейчас я застрял в ошибке GUI, вот упрощенный код:Ошибка при создании Toplevel виджета в 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' как функцию после преобразования атрибута title в строку. Вот в чем суть: вы уничтожаете функцию и заменяете ее строкой. В любое время после этого, если вы попытаетесь использовать его как функцию, вы получите эту ошибку. –

+0

Спасибо большое! Я не объяснил это вначале. –

Смежные вопросы