Tema: Evento PyQt4
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 26/03/2011, 11:27
BryanMtdt
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Evento PyQt4

Estoy empezando con PyQt, y relacionado con el tema de este post, como puedo hacer para cerrar varias ventanas simultáneamente?

Acá tengo este codigo de un programa que estoy empezando y usa 2 clases que muestro pero quiero hacer que si se cierra una la otra también.

Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-

# points.py

import sys, random
import math,time
from PyQt4 import QtGui, QtCore

Lx=400
Ly=400
xn=-3
xm=3
yn=xn #Escala cuadrada
ym=xm
#Se espera que con solo asegurar un fl todo se opere como flotante
EscalaX=(float(xm)-xn)/Lx 
EscalaY=(float(ym)-yn)/Ly 
Soluciones=[]
def Circulo (x0,y0,r):
	#Definir la paremetrizacion
	#Aprox cuantos px se ocupan para dibujar la circunferencia.
	n=(2*math.pi*r)/EscalaX
	#Aumentando el numero un 5%
	n=1.05*n
	#Se requiere un numero entero de pixeles
	n=int(n)
	#El circulo se parametriza facilmente usando polares
	#Se divide 2pi entre el numero de pasos que se requieren
	paso=(2*math.pi)/n
	#Se inicializa el parametro, contador y arreglo de soluciones
	t=0
	cont=0
	S=[]	
	#Generar las soluciones para el circulo parametrizado
	while cont<n:
		S.append([float(r*math.cos(t)+x0),float(r*math.sin(t)+y0)])
		t=t+paso
		cont=cont+1
	if S!=[]:
		return S
#Prueba de la matriz soluciones y de la funcion circulo
Soluciones=Soluciones+Circulo(1,1,2)
Soluciones=Soluciones+Circulo(0,0,1)
Soluciones=Soluciones+Circulo(0,0,0.5)
Soluciones=Soluciones+Circulo(0,0,1.5)
Soluciones=Soluciones+Circulo(0,0,2)
print (Soluciones)
#Generar la matriz de pixeles
L=len(Soluciones)
Pix=[]
i=0
while i<L:
	Pix.append([int((Soluciones[i][0]-xn)/EscalaX),Ly-int((Soluciones[i][1]-yn)/EscalaY)])
	i=i+1
#Generar la matriz de soluciones mapeadas
L=len(Soluciones)
SolMap=[]
i=0
while i<L:
	#SolMap.append([(1.0/(math.sqrt(Soluciones[i][0]*Soluciones[i][0]+Soluciones[i][1]*Soluciones[i][1])))*math.cos(-math.atan(float(Soluciones[i][1])/Soluciones[i][0])),(1.0/(math.sqrt(Soluciones[i][0]*Soluciones[i][0]+Soluciones[i][1]*Soluciones[i][1])))*math.sin(-math.atan(Soluciones[i][1]/Soluciones[i][0]))])
	SolMap.append([Soluciones[i][0],Soluciones[i][1]])
	i=i+1
#Generar la matriz de pixeles mapeados
L=len(SolMap)
PixMap=[]
i=0
while i<L:
	PixMap.append([int((SolMap[i][0]-xn)/EscalaX),Ly-int((SolMap[i][1]-yn)/EscalaY)])
	i=i+1

#Clase para el interfaz grafico usando PyQt4
class Grafica(QtGui.QWidget):
  
    def __init__(self):
        super(Grafica, self).__init__()

        self.setGeometry(150, 100, Lx, Ly)
        self.setWindowTitle('Grafica a Mapear')
	self.setStyleSheet("QWidget {background-color: #FFFFFF}")



    def paintEvent(self, e):
      
        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawPoints(qp)
        qp.end()
        
    def drawPoints(self, qp):
        
        size = self.size()
	#Dibujar los ejes
	qp.setPen(QtGui.QColor(0, 0, 0))
	x=float(xn)	
	while x<xm:
		qp.drawPoint(int((x-xn)/EscalaX),int((0-yn)/EscalaY))
		x=x+EscalaX
	y=float(yn)	
	while y<ym:
		qp.drawPoint(int((0-xn)/EscalaX),int((y-yn)/EscalaY))
		y=y+EscalaY	
	#Dibujar la matriz de soluciones	
	qp.setPen(QtCore.Qt.red)	
	L=len(Pix)
	i=0
	while i<L:
		#Se dibujan los pixeles de la matriz de soluciones
		qp.drawPoint(Pix[i][0],Pix[i][1])		
		i=i+1



class Mapeo(QtGui.QWidget):
  
    def __init__(self):
        super(Mapeo, self).__init__()

        self.setGeometry(650, 100, Lx, Ly)
        self.setWindowTitle('Mapeo de la grafica')
	self.setStyleSheet("QWidget {background-color: #FFFFFF}")



    def paintEvent(self, e):
      
        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawPoints(qp)
        qp.end()
        
    def drawPoints(self, qp):
        
        size = self.size()
	#Dibujar los ejes
	qp.setPen(QtGui.QColor(0, 0, 0))
	x=float(xn)	
	while x<xm:
		qp.drawPoint(int((x-xn)/EscalaX),int((0-yn)/EscalaY))
		x=x+EscalaX
	y=float(yn)	
	while y<ym:
		qp.drawPoint(int((0-xn)/EscalaX),int((y-yn)/EscalaY))
		y=y+EscalaY	

	#Dibujar la matriz mapeada
	L=len(PixMap)
	i=0
	qp.setPen(QtGui.QColor(0, 255, 50))
	while i<L:
		#Dibujando los pixeles
		qp.drawPoint(PixMap[i][0],PixMap[i][1])		
		i=i+1

print SolMap
print (len(Soluciones))
print (len(SolMap))
print (len(PixMap))

app = QtGui.QApplication(sys.argv)

graf = Grafica()
graf.show()

mapeo = Mapeo()
mapeo.show()

sys.exit(app.exec_())