Abrindo uma caixa de diálogo Rapidamente usando um botão

1

Eu criei uma janela usando rapidamente adicionar diálogo. Mas não consigo descobrir como simplesmente abrir o diálogo a partir de um botão. Eu já configurei um botão na minha janela principal e configurei o código para ele. Este é o código do botão:

def on_quicksitesbutton_clicked(self, widget):
dialog = QuicksitesDialog.QuicksitesDialog()
result = dialog.run()

Eu também importei o diálogo com esta linha de código:

from brandsonicweb.QuicksitesDialog import QuicksitesDialog

O programa roda bem, mas quando eu clico no botão eu entro no terminal:

Traceback (most recent call last):
  File "/home/brandon/brandsonicweb/brandsonicweb/BrandsonicwebWindow.py", line 71, in on_quicksitesbutton_clicked
    dialog = QuicksitesDialog.QuicksitesDialog()
AttributeError: type object 'QuicksitesDialog' has no attribute 'QuicksitesDialog'

O que estou fazendo de errado? Como posso fazer isso funcionar?

    
por Sega dude 23.06.2013 / 03:49

1 resposta

1

Provavelmente isso:

Você importa QuicksitesDialog primeiro:

from brandsonicweb.QuicksitesDialog import QuicksitesDialog

E então você tenta ligar novamente:

dialog = QuicksitesDialog.QuicksitesDialog()

Sem olhar para o seu código, isso pode ser corrigido de duas maneiras:

from brandsonicweb.QuicksitesDialog import QuicksitesDialog
dialog = QuicksitesDialog()

Ou:

from brandsonicweb import QuicksitesDialog
dialog = QuicksitesDialog.QuicksitesDialog()

Pode ser um pouco confuso porque aparentemente dá rapidamente ao módulo e classe o mesmo nome.

Observe também o excelente erro do Python, que oferece uma boa indicação.

    
por Timo 23.06.2013 / 13:30