Pregunta

Pythonistas buen día y el resto de la multitud de codificación,

Tengo dos QMainWindows diseñados y codificados por separado. Necesito:

  1. pantalla primero
  2. en una pulsación de botón cerrar la primera ventana
  3. construir y visualizar la segunda ventana usando los argumentos de la primera

He tratado de diseñar una tercera clase para controlar el flujo pero no entiende mi intento de señal / ranura:

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

gurús Oh, ¿me ilumine en cierta manera inteligente o un truco ingenioso para resolver mis penurias.

Saludos.

¿Fue útil?

Solución 2

Bueno, he renunciado a la clase de control (la próxima vez hará que el control como la primera cosa y sólo después de eso hacer que las ventanas)

En su lugar se han apareado las ventanas mediante la inyección de semilla constructor de los segundos en el cuerpo del primero uno y luego self.close() la joven madre. Tan trágico.

Otros consejos

Respuesta:

he tenido algunos problemas con la conexión de señales recientemente. Me pareció que funcionaba cuando quité los paréntesis de la QtCore.SIGNAL.

intentar cambiar esto:

QtCore.SIGNAL("destroyed()")

a esto:

QtCore.SIGNAL("destroyed")

Referencia:

Esto se debe a que está utilizando el "viejo estilo" señales / ranuras según Ribera. Aquí está la referencia a los documentos . En concreto, esta es la línea que busca:

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

También:

Asegúrese de que su clase this.FirstWindow tiene esta línea antes de su __init__(self...):

__pyqtSignals__ = ( "destroyed" )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top