def __init__(self,parent=None): super(Main, self).__init__(parent) self.ui = Ui_Dialog() self.ui.setupUi(self) self.load_data() self.connect_signals() self.show()
class Main(QtGui.QMainWindow): """ Esta es una grilla """ def __init__(self,parent=None): super(Main, self).__init__(parent) self.ui = Ui_Dialog() self.ui.setupUi(self) self.load_data() self.connect_signals() self.show() def connect_signals(self): self.ui.btn_agregar.clicked.connect(self.add) self.ui.btn_editar.clicked.connect(self.editar) self.ui.btn_borrar.clicked.connect(self.delete) self.ui.buscar.textChanged[str].connect(self.filtrar_modelos) def add(self): self.ui.form = FormModelo(self) self.ui.form.accepted.connect(self.load_data) self.ui.form.show() pass def filtrar_modelos(self,busqueda): """ Filtra la busqueda de modelos ingresado en el lineEdit """ mod = db.buscar_modelos(busqueda) self.load_data(mod) def load_data(self, modelos= None): """ Función que carga la información de modelos en la grilla incluyendo la cantidad de modelos asociados a la marca """ if (modelos == None): modelos = db.obtener_modelos() #Creamos el modelo asociado a la tabla self.data = QtGui.QStandardItemModel(len(modelos)+1, 10) self.data.setHorizontalHeaderItem( 0, QtGui.QStandardItem(u"modelo")) self.data.setHorizontalHeaderItem( 1, QtGui.QStandardItem(u"Marca")) self.data.setHorizontalHeaderItem( 2, QtGui.QStandardItem(u"motor")) self.data.setHorizontalHeaderItem( 3, QtGui.QStandardItem(u"peso")) self.data.setHorizontalHeaderItem( 4, QtGui.QStandardItem(u"rendimiendo")) self.data.setHorizontalHeaderItem( 5, QtGui.QStandardItem(u"Ventas")) self.data.setHorizontalHeaderItem( 6, QtGui.QStandardItem(u"fecha_creacion")) self.data.setHorizontalHeaderItem( 7, QtGui.QStandardItem(u"descripcion")) self.data.setHorizontalHeaderItem( 8, QtGui.QStandardItem(u"precio_lista")) for r, row in enumerate(modelos): index = self.data.index(r, 0, QtCore.QModelIndex()) self.data.setData(index, row['modelo']) index = self.data.index(r, 1, QtCore.QModelIndex()) self.data.setData(index, row['Marca']) index = self.data.index(r, 2, QtCore.QModelIndex()) self.data.setData(index, row['motor']) index = self.data.index(r, 3, QtCore.QModelIndex()) self.data.setData(index, row['peso']) index = self.data.index(r, 4, QtCore.QModelIndex()) self.data.setData(index, row['rendimiendo']) index = self.data.index(r, 5, QtCore.QModelIndex()) self.data.setData(index, row['Ventas']) index = self.data.index(r, 6, QtCore.QModelIndex()) self.data.setData(index, row['fecha']) index = self.data.index(r, 7, QtCore.QModelIndex()) self.data.setData(index, row['descripcion']) index = self.data.index(r, 8, QtCore.QModelIndex()) self.data.setData(index, row['precio_lista']) self.ui.tableView.setModel(self.data) self.ui.tableView.horizontalHeader().setResizeMode( 0, self.ui.tableView.horizontalHeader().Stretch) self.ui.tableView.horizontalHeader().setResizeMode( 7, self.ui.tableView.horizontalHeader().Stretch) self.ui.tableView.setColumnWidth(0, 100) self.ui.tableView.setColumnWidth(7, 210) self.data = self.ui.tableView.selectionModel() self.data.currentChanged.connect(self.cambiaFila) def delete(self): """ Función que intenta borrar un alumno de la base de datos e indica el resultado de la operación """ data = self.ui.tableView.model() index = self.ui.tableView.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage(u"Debe seleccionar una fila") return False else: self.resp = QtGui.QMessageBox.question( self,"Borrar", "Deseas borrar esta marca?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No); if self.resp == QtGui.QMessageBox.Yes: marca = data.index( index.row(), 0, QtCore.QModelIndex()).data() if (db.borrar_elemento("modelo","modelo",marca)): self.load_data() msgBox = QtGui.QMessageBox() msgBox.setText(u"EL registro fue eliminado.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage( u"Error al eliminar el registro") return False def cambiaFila(self,index,indexp): model = self.ui.tableView.model() ind = model.index(index.row(), 0, QtCore.QModelIndex()).data() auto = db.obtenerAutoMod(ind) url = str(auto[0]['imagen']) print url pmap = QtGui.QPixmap(url) pmap = pmap.scaled(250,200,QtCore.Qt.KeepAspectRatio) self.ui.foto.setPixmap(pmap) #self.ui.descripcion.setText(str(auto[0]['descripcion'])) ########### rehacer.. def editar(self): """ Función obtiene el alumno seleccionado en la grilla para poner sus datos en el formulario para su edición """ data = self.ui.tableView.model() index = self.ui.tableView.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage(u"Debe seleccionar una fila") return False else: nom_marca = data.index(index.row(), 0, QtCore.QModelIndex()).data() self.ui.form = FormModelo(self, nom_marca) self.ui.form.accepted.connect(self.load_data) self.ui.form.show()