def __init__(self, parent, gestorsalida, gestortemas): QtGui.QMainWindow.__init__(self) self.ui = Ui_VentanaSalida() self.ui.setupUi(self) # VARIABLES PUBLICAS self.__parent = parent # VARIABLES PRIVADAS self.__gestortemas = gestortemas self.__gestorsalida = gestorsalida self.__contenido = [] self.__inittoolbar() self.__conexiones()
class VSalida(QtGui.QMainWindow): """Ventana que muestra los resultados de las operaciones solicitadas. Permite al usuario exportar o guardar los resultados ya obtenidos""" def __init__(self, parent, gestorsalida, gestortemas): QtGui.QMainWindow.__init__(self) self.ui = Ui_VentanaSalida() self.ui.setupUi(self) # VARIABLES PUBLICAS self.__parent = parent # VARIABLES PRIVADAS self.__gestortemas = gestortemas self.__gestorsalida = gestorsalida self.__contenido = [] self.__inittoolbar() self.__conexiones() # FUNCIONES PUBLICAS def ana_res(self, objeto): """Añade un resultado al dialogo, para ser mostrado""" self.__contenido.append(objeto) def __myUpdate(self): """Actualiza el contenido de la ventana""" cadenasalida = "" i = 1 for resultado in self.__contenido: cadenasalida += "<a name=" + str(i) + "></a>" cadenasalida += resultado.html().encode("iso-8859-1", "replace") i += 1 self.ui.textBrowser.setText(cadenasalida) self.ui.textBrowser.scrollToAnchor(str(len(self.__contenido))) self.__actualizar_lista() def closeEvent(self, event): """Redefinicion del closeEvent de qt""" QWidget.closeEvent(self, event) if not self.__parent.vprincipal.isVisible(): qApp.exit(0) else: self.hide() def showEvent(self, ev): """Redefinicion del método show de VentanaSalida, muestra todos los resultados almacenados""" self.__myUpdate() # FUNCIONES PRIVADAS def __conexiones(self): """Bloque de conexiones""" from PyQt4.QtCore import SIGNAL self.connect(self.ui.actionAbrir, SIGNAL("triggered()"), self.__dabrirfichero) self.connect(self.ui.actionGuardar, SIGNAL("triggered()"), self.__dguardarfichero) self.connect(self.ui.actionExportar, SIGNAL("triggered()"), self.__dexportar) self.connect(self.ui.actionSalir, SIGNAL("triggered()"), self.hide) self.connect(self.__boton1, SIGNAL("clicked()"), self.__dabrirfichero) self.connect(self.__boton2, SIGNAL("clicked()"), self.__dguardarfichero) self.connect(self.__boton3, SIGNAL("clicked()"), self.__dexportar) # self.connect(self.__boton4,SIGNAL("clicked()"),self.__parent.vprincipal.show) # self.connect(self.ui.pushButton1,SIGNAL("clicked()"),self.__borrar_elemento) def __inittoolbar(self): """Inicializa la toolbar""" self.__boton1 = QToolButton(self.ui.toolBar) # TODO Pendiente Qt4 # self.boton1.setTextLabel("Abrir fichero") # iconos=QIconSet() # iconos.setIconSize(QIconSet.Small,QSize(100,100)) # iconos.setPixmap(self.__gestortemas.iconoabrir(),QIconSet.Small) # self.boton1.setOn(True) # self.boton1.setIconSet(iconos) self.__boton2 = QToolButton(self.ui.toolBar) # self.boton2.setTextLabel("Guardar en fichero") # iconos=QIconSet() # iconos.setIconSize(QIconSet.Small,QSize(100,100)) # iconos.setPixmap(self.__gestortemas.iconoguardar(),QIconSet.Small) # self.boton2.setOn(True) # self.boton2.setIconSet(iconos) self.__boton3 = QToolButton(self.ui.toolBar) # self.boton3.setTextLabel("Exportar a html") # iconos=QIconSet() # iconos.setIconSize(QIconSet.Small,QSize(100,100)) # iconos.setPixmap(self.__gestortemas.iconoexportar(),QIconSet.Small) # self.boton3.setOn(True) # self.boton3.setIconSet(iconos) self.__boton4 = QToolButton(self.ui.toolBar) def __dabrirfichero(self): """Pregunta al usuario que fichero cargar""" filterlist = "" for fmt in ["dro"]: # Candidata al fichero de listas filterlist = filterlist + "%s files (*.%s);;" % (fmt, string.lower(fmt)) nombrefichero = QFileDialog.getOpenFileName(QString.null, filterlist, self, None, "Dialogo abrir fichero", "") filename = str(nombrefichero) if filename: try: self.__contenido = self.__gestorsalida.cargar(filename) except AttributeError: QErrorMessage(self, "Error").message(u"Error en la carga de fichero, Probablemente versión anterior") else: self.__myUpdate() def __dguardarfichero(self): """Pregunta al usuario en que fichero guardar""" filterlist = "" for fmt in ["dro"]: # Candidata al fichero de listas filterlist = filterlist + "%s files (*.%s);;" % (fmt, string.lower(fmt)) nombrefichero = QFileDialog.getSaveFileName(QString.null, filterlist, self) filename = str(nombrefichero) if filename: from Driza.excepciones import FicheroExisteException, FicheroTipoDesconocidoException import re extension = re.compile(".*\..*") if not extension.match(filename): filename += ".dro" try: self.__gestorsalida.guardar(self.__contenido, filename) except FicheroExisteException, fichero: codigoretorno = QMessageBox.information( self, "Atencion:", "El fichero" + fichero.fichero + " ya existe", "Sobreescribir", "Otro nombre", "Cancelar", 0, 1, ) if codigoretorno == 0: self.__gestorsalida.guardar(self.__contenido, filename, True) elif codigoretorno == 1: self.__dguardarfichero() except FicheroTipoDesconocidoException: QMessageBox.warning( self, u"Atención", u"La extensión del fichero es incorrecta.\nPruebe con otra extensión" )