def __init__(self, parent=None): """ metodo constructor """ QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_Form() self.ui.setupUi(self) self.carga_actores() self.dialogo = ctrl_form_actor() self.ed_dialogo = Editar() #self.show() self.set_box() self.signals()
class Actores(QtGui.QMainWindow): """ clase principal """ tabla_columnas = ( (u"Nombre", 200), (u"Birtday", 150), (u"Genero", 150)) def __init__(self, parent=None): """ metodo constructor """ QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_Form() self.ui.setupUi(self) self.carga_actores() self.dialogo = ctrl_form_actor() self.ed_dialogo = Editar() #self.show() self.set_box() self.signals() def set_box(self): """ Rellena el combobox con peliculas """ self.i = Modelo_actor.num_peli() self.ui.filtro_box.setMaxCount(self.i) self.peli = Modelo_actor.llena_box() for itm in range(len(self.peli)): #print self.peli[itm][0] #print itm self.ui.filtro_box.addItem(self.peli[itm][0]) def signals(self): """ define el manejo de señales """ self.ui.tabla_actor.clicked.connect(self.show_poster) self.ui.elim_actor.clicked.connect(self.elimina) self.ui.agre_actor.clicked.connect(self.agregando) self.ui.edit_actor.clicked.connect(self.editando) self.ui.boton_filtrar.clicked.connect(self.filtrando) self.ed_dialogo.ui.boton_guardar.clicked.connect(self.carga_actores) self.dialogo.ui.boton_crear.clicked.connect(self.carga_actores) def agregando(self): """ abre la ventana para agregar un nuevo actor """ self.dialogo.show(); def editando(self): """ abre ventana para editar actores """ index =self.ui.tabla_actor.currentIndex() data = self.ui.tabla_actor.model() mov = data.item(index.row(),0).mov iD = str(mov['id']) self.ed_dialogo.setID(iD) self.ed_dialogo.show(); def elimina(self): """ elimina un actor de la base de datos """ index =self.ui.tabla_actor.currentIndex() data = self.ui.tabla_actor.model() mov = data.item(index.row(),0).mov iD = str(mov['id']) resp = QtGui.QMessageBox.question(self, "Pregunta","Desea realmente eliminar el actor seleccionado?",QtGui.QMessageBox.Ok,QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.Ok: Modelo_actor.borrar(iD); self.carga_actores(); def show_poster(self, index): """ carga la imagen en la ventana """ index = index if index is not None\ else self.ui.tabla_actor.currentIndex() if index.row() == -1: QtGui.QMessageBox.information( None, u"Información", u"Por favor seleccione una orden de trabajo.") return data = self.ui.tabla_actor.model() mov = data.item(index.row(), 0).mov #print mov[0] self.num_act=Modelo_actor.actuaciones(mov[0]) #print self.num_act self.ui.numero_actuaciones.setText(str(self.num_act)) if (self.num_act==1): self.ui.label_2.setText("pelicula.") else: self.ui.label_2.setText("peliculas.") # Ahora la imagen img = QtGui.QPixmap(str(mov['imagen'])) #print str(mov['imagen']) self.ui.img_actor.setPixmap(img) def filtrando(self): """ selecciona los actores que participaron en una determinada pelicula """ self.peliculas = self.ui.filtro_box.currentText() self.actores = Modelo_actor.filtro_actor(self.peliculas) print(self.actores) rows = len(self.actores) if rows == 0: QtGui.QMessageBox.information(None,u"Información",u"No se encontro nigun actor para esta pelicula.") return data = QtGui.QStandardItemModel(rows, len(self.tabla_columnas)) self.ui.tabla_actor.setModel(data) self.ui.tabla_actor.horizontalHeader().setResizeMode(0, self.ui.tabla_actor.horizontalHeader().Stretch) for col, h in enumerate(self.tabla_columnas): data.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.tabla_actor.setColumnWidth(col, h[1]) for i, mov in enumerate(self.actores): row = [ mov["nombre"], mov["birthday"], mov["genero"], mov["imagen"]] for j, field in enumerate(row): index = data.index(i, j, QtCore.QModelIndex()) data.setData(index, field) # Parametros ocultos data.item(i).mov = mov def carga_actores(self): """ carga actores en la tabla de datos """ actores = Modelo_actor.obtener_actor() rows = len(actores) data = QtGui.QStandardItemModel( rows, len(self.tabla_columnas)) self.ui.tabla_actor.setModel(data) self.ui.tabla_actor.horizontalHeader().setResizeMode( 0, self.ui.tabla_actor.horizontalHeader().Stretch) for col, h in enumerate(self.tabla_columnas): data.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.tabla_actor.setColumnWidth(col, h[1]) for i, mov in enumerate(actores): row = [ mov["nombre"], mov["birthday"], mov["genero"], mov["imagen"]] for j, field in enumerate(row): index = data.index(i, j, QtCore.QModelIndex()) data.setData(index, field) # Parametros ocultos data.item(i).mov = mov