def __init__(self, parent=None, id_local=None): QtGui.QDialog.__init__(self, parent) self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.agregar.clicked.connect(self.conectar) self.ui.aceptar.clicked.connect(self.cancel) self.ui.eliminar.clicked.connect(self.eliminar) self.ui.tableView.doubleClicked.connect(self.editar) self.ui.idlocal.setText(str(id_local)) self.cargar_grid() self.show()
class Form(QtGui.QDialog): def __init__(self, parent=None, id_local=None): QtGui.QDialog.__init__(self, parent) self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.agregar.clicked.connect(self.conectar) self.ui.aceptar.clicked.connect(self.cancel) self.ui.eliminar.clicked.connect(self.eliminar) self.ui.tableView.doubleClicked.connect(self.editar) self.ui.idlocal.setText(str(id_local)) self.cargar_grid() self.show() def conectar(self): """función que conecta la grilla de empleados con la forma de ingreso de empleados""" form = empleados_form.Form(self) form.setWindowTitle("Agregar un empleado") form.rejected.connect(self.cargar_grid) form.ui.local_bar.setText(self.ui.idlocal.text()) form.ui.add_btn.clicked.connect(form.add) form.exec_() def editar(self): """función que conecta la grilla de empleados con la forma de ingreso de empleados""" model = self.ui.tableView.model() index = self.ui.tableView.currentIndex() rut = model.index(index.row(), 0, QtCore.QModelIndex()).data() form = empleados_form.Form(self,rut) form.ui.add_btn.clicked.connect(form.edit) form.rejected.connect(self.cargar_grid) form.setWindowTitle("Editar Empleado") form.exec_() def cargar_grid(self): """función que muestra los empleados de un local en específico, usando su id_local""" empleados = c.obtener_empleados_por_local(self.ui.idlocal.text()) #Creamos el modelo asociado a la tabla self.model = QtGui.QStandardItemModel(len(empleados), 6) self.model.setHorizontalHeaderItem(0, QtGui.QStandardItem(u"RUT")) self.model.setHorizontalHeaderItem(1, QtGui.QStandardItem(u"Nombre")) self.model.setHorizontalHeaderItem(2, QtGui.QStandardItem(u"Cargo")) self.model.setHorizontalHeaderItem(3, QtGui.QStandardItem(u"Genero")) self.model.setHorizontalHeaderItem(4, QtGui.QStandardItem(u"Sueldo")) self.model.setHorizontalHeaderItem(5, QtGui.QStandardItem(u"local")) r = 0 for row in empleados: #print row index = self.model.index(r, 0, QtCore.QModelIndex()) self.model.setData(index, row[0]) index = self.model.index(r, 1, QtCore.QModelIndex()) self.model.setData(index, row[1]) index = self.model.index(r, 2, QtCore.QModelIndex()) self.model.setData(index, row[2]) index = self.model.index(r, 3, QtCore.QModelIndex()) self.model.setData(index, row[3]) index = self.model.index(r, 4, QtCore.QModelIndex()) self.model.setData(index, row[4]) index = self.model.index(r, 5, QtCore.QModelIndex()) self.model.setData(index, row[5]) r = r+1 self.ui.tableView.setModel(self.model) self.ui.tableView.setColumnWidth(0, 120) self.ui.tableView.setColumnWidth(1, 120) self.ui.tableView.setColumnWidth(2, 120) self.ui.tableView.setColumnWidth(3, 120) self.ui.tableView.setColumnWidth(4, 120) self.ui.tableView.setColumnWidth(5, 120) def eliminar(self): """función que elimina los empleados de cada local que solo pueden ser eliminados a través de la selección del registro a eliminar""" model = self.ui.tableView.model() index = self.ui.tableView.currentIndex() if index.row() == -1: #No se ha seleccionado una fila msgBox = QtGui.QMessageBox.information(self,"Error","debe seleccionar una fila") return False else: rut = model.index(index.row(), 0, QtCore.QModelIndex()).data() id_local = model.index(index.row(), 5, QtCore.QModelIndex()).data() if (c.eliminar_empleado(rut)): self.cargar_grid() msgBox = QtGui.QMessageBox() msgBox.setText("EL empleado de este local fue eliminado.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage("Error al eliminar el registro del empleado de este local") return False def cancel(self): """ventana que permite la cancelación de la ventana""" self.reject()