Combinando dois QMainWindows
-
13-09-2019 - |
Pergunta
Boas pythonistas dia eo resto da multidão de codificação,
Eu tenho dois QMainWindows concebidos e codificadas separadamente. Preciso:
- exibição primeira
- em um botão-de imprensa perto a primeira janela
- 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.
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" )