def __init__(self, parent=None): super(Principal, self).__init__(parent) self.ui = Ui_MedicosForm() self.ui.setupUi(self) self.ui.btn_registrar.clicked.connect(self.registrar) self.ui.btn_editar.clicked.connect(self.editar) self.ui.btn_eliminar.clicked.connect(self.eliminar) self.ui.btn_refrescar.clicked.connect(self.load) self.main_layout = QtGui.QVBoxLayout(self) self.renderizaTabla() self.load() self.centrar() self.show()
class Principal(QtGui.QWidget, Ui_MedicosForm): def __init__(self, parent=None): super(Principal, self).__init__(parent) self.ui = Ui_MedicosForm() self.ui.setupUi(self) self.ui.btn_registrar.clicked.connect(self.registrar) self.ui.btn_editar.clicked.connect(self.editar) self.ui.btn_eliminar.clicked.connect(self.eliminar) self.ui.btn_refrescar.clicked.connect(self.load) self.main_layout = QtGui.QVBoxLayout(self) self.renderizaTabla() self.load() self.centrar() self.show() def editar(self): index = self.ui.tblview_medicos.currentIndex() # obtiene la fila #seleccionada if index.row() == -1: mensaje = "Seleccione un Medico para Editar" errorQMessageBox = QtGui.QMessageBox() errorQMessageBox.setWindowTitle("Error") errorQMessageBox.setText(mensaje) errorQMessageBox.exec_() else: medico = list() model = self.ui.tblview_medicos.model() medico.append(model.index(index.row(), 0, QtCore.QModelIndex()).data()) medico.append(model.index(index.row(), 1, QtCore.QModelIndex()).data()) medico.append(model.index(index.row(), 2, QtCore.QModelIndex()).data()) medico.append(model.index(index.row(), 3, QtCore.QModelIndex()).data()) app = RegisMedico.Principal(medico) app.setWindowTitle("Editar Paciente") sys.exit(app.exec_()) def registrar(self): app = RegisMedico.Principal() sys.exit(app.exec_()) def eliminar(self): index = self.ui.tblview_medicos.currentIndex() # obtiene la fila #seleccionada if index.row() == -1: mensaje = "Seleccione un Medico para borrar" errorQMessageBox = QtGui.QMessageBox() errorQMessageBox.setWindowTitle("Error") errorQMessageBox.setText(mensaje) errorQMessageBox.exec_() else: model = self.ui.tblview_medicos.model() rut = model.index(index.row(), 0, QtCore.QModelIndex()).data() Controller.eliminarMedico(rut) def renderizaTabla(self): self.table = self.ui.tblview_medicos self.table.setFixedWidth(450) self.table.setFixedHeight(340) self.table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.table.setAlternatingRowColors(True) self.table.setSortingEnabled(True) self.main_layout.addWidget(self.table) def load(self): # metodo para cargar la grilla con los medicos medicos = Controller.medicos() self.model = QtGui.QStandardItemModel(len(medicos), 5) self.model.setHorizontalHeaderItem(0, QtGui.QStandardItem(u"Rut")) self.model.setHorizontalHeaderItem(1, QtGui.QStandardItem (u"Nombres")) self.model.setHorizontalHeaderItem(2, QtGui.QStandardItem (u"Apellidos")) self.model.setHorizontalHeaderItem(3, QtGui.QStandardItem (u"Especialidad")) self.model.setHorizontalHeaderItem(4, QtGui.QStandardItem (u"N Horas Medicas")) r = 0 for row in medicos: fk_rut_medico = row['rut'] index = self.model.index(r, 0, QtCore.QModelIndex()) self.model.setData(index, row['Rut']) index = self.model.index(r, 1, QtCore.QModelIndex()) self.model.setData(index, row['Nombres']) index = self.model.index(r, 2, QtCore.QModelIndex()) self.model.setData(index, row['Apellidos']) index = self.model.index(r, 3, QtCore.QModelIndex()) self.model.setData(index, row['Especialidad']) index = self.model.index(r, 4, QtCore.QModelIndex()) self.model.setData(index, Controller.obtenerNCitas(fk_rut_medico)) r = r + 1 self.table.setModel(self.model) def centrar(self): """Centra la ventana actual.""" qr = self.frameGeometry() cp = QtGui.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft())