Pergunta

Boas pythonistas dia eo resto da multidão de codificação,

Eu tenho dois QMainWindows concebidos e codificadas separadamente. Preciso:

  1. exibição primeira
  2. em um botão-de imprensa perto a primeira janela
  3. construir e exibir a segunda janela usando os argumentos do primeiro

Eu tentei criar uma terceira classe para controlar o fluxo, mas não entende a minha tentativa de sinal / slot:

 QtCore.QObject.connect(self.firstWindow,QtCore.SIGNAL("destroyed()"),self.openSecondWindow)

Oh gurus, você me esclarecer sobre alguma maneira inteligente ou um truque inteligente para resolver minhas dificuldades.

Felicidades.

Foi útil?

Solução 2

Bem, eu ter desistido da classe de controle (próxima vez vai fazer o controle como a primeira coisa e só depois disso fazer as janelas)

Em vez acasalaram as janelas injetando semente construtor dos segundos no corpo do primeiro um e depois self.close() a jovem mãe. Tão trágico.

Outras dicas

Resposta:

Eu tive alguns problemas com a conexão de sinais recentemente. Eu achei que ele trabalhou quando eu removidos os parênteses do QtCore.SIGNAL.

Tente alterar isto:

QtCore.SIGNAL("destroyed()")

a esta:

QtCore.SIGNAL("destroyed")

Referência:

Isto é porque você está usando o "estilo antigo" sinais / slots de acordo com Riverbank. Aqui é a referência aos docs . Especificamente, esta é a linha que você está procurando:

QtCore.QObject.connect(a, QtCore.SIGNAL("PySig"), pyFunction)

Também:

Certifique-se de sua classe this.FirstWindow tem esta linha antes de seu __init__(self...):

__pyqtSignals__ = ( "destroyed" )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top