class nuevoCliente(QDialog): def __init__(self, parent=None): super(nuevoCliente, self).__init__() self.setWindowIcon(QIcon("Imagenes/new.jpg")) self.setWindowTitle("Новый клиент") self.setWindowFlags(Qt.WindowCloseButtonHint | Qt.MSWindowsFixedSizeDialogHint) self.setFixedSize(320, 478) self.initUI() def initUI(self): self.groupBoxDatosGenerales = QGroupBox("Новый клиент", self) self.groupBoxDatosGenerales.setFixedSize(300, 223) self.groupBoxDatosGenerales.move(10, 13) labelNombre = QLabel("<font color='#FF3300'>*</font> Имя", self.groupBoxDatosGenerales) labelNombre.move(15, 28) self.lineEditNombre = QLineEdit(self.groupBoxDatosGenerales) self.lineEditNombre.setValidator(QRegExpValidator(QRegExp("[a-zA-Z ]+"), self.lineEditNombre)) self.lineEditNombre.setMaxLength(30) self.lineEditNombre.setFixedWidth(270) self.lineEditNombre.setFocus() self.lineEditNombre.move(15, 46) labelApellido = QLabel("<font color='#FF3300'>*</font> Фамилия", self.groupBoxDatosGenerales) labelApellido.move(15, 74) self.lineEditApellido = QLineEdit(self.groupBoxDatosGenerales) self.lineEditApellido.setValidator(QRegExpValidator(QRegExp("[a-zA-Z ]+"), self.lineEditApellido)) self.lineEditApellido.setMaxLength(30) self.lineEditApellido.setFixedWidth(270) self.lineEditApellido.move(15, 92) labelSexo = QLabel("<font color='#FF3300'>*</font> Пол", self.groupBoxDatosGenerales) labelSexo.move(15, 120) self.comboBoxSexo = QComboBox(self.groupBoxDatosGenerales) self.comboBoxSexo.addItems(["М", "Ж"]) self.comboBoxSexo.setCurrentIndex(-1) self.comboBoxSexo.setFixedWidth(270) self.comboBoxSexo.move(15, 138) labelFechaNacimiento = QLabel("<font color='#FF3300'>*</font> Дата рождения", self.groupBoxDatosGenerales) labelFechaNacimiento.move(15, 166) self.dateEditFechaNacimiento = QDateEdit(self.groupBoxDatosGenerales) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.dateEditFechaNacimiento.setMaximumDate(QDate.currentDate()) self.dateEditFechaNacimiento.setDisplayFormat("dd/MM/yyyy") self.dateEditFechaNacimiento.setCalendarPopup(True) self.dateEditFechaNacimiento.setCursor(Qt.PointingHandCursor) self.dateEditFechaNacimiento.setFixedWidth(270) self.dateEditFechaNacimiento.move(15, 184) self.groupBoxUbicacion = QGroupBox("Проживание", self) self.groupBoxUbicacion.setFixedSize(300, 86) self.groupBoxUbicacion.move(10, 250) labelPais = QLabel("<font color='#FF3300'>*</font> Страна", self.groupBoxUbicacion) labelPais.move(15, 28) self.lineEditPais = QLineEdit(self.groupBoxUbicacion) self.lineEditPais.setMaxLength(30) self.lineEditPais.setFixedWidth(270) self.lineEditPais.move(15, 48) self.groupBoxContacto = QGroupBox("Контакты", self) self.groupBoxContacto.setFixedSize(300, 86) self.groupBoxContacto.move(10, 350) labelTelCel = QLabel("<font color='#FF3300'>*</font> Номер телефона", self.groupBoxContacto) labelTelCel.move(15, 28) self.lineEditTelCel = QLineEdit(self.groupBoxContacto) self.lineEditTelCel.setInputMask("9999999999999999; ") self.lineEditTelCel.setFixedWidth(270) self.lineEditTelCel.move(15, 48) # ========================================================== labelInformacion = QLabel("<font color='#FF3300'>*</font> Обязательные поля.", self) labelInformacion.move(10, 445) buttonAceptar = QPushButton("Сохранить", self) buttonAceptar.setCursor(Qt.PointingHandCursor) buttonAceptar.move(154, 445) buttonCerrar = QPushButton("Закрыть", self) buttonCerrar.setCursor(Qt.PointingHandCursor) buttonCerrar.move(236, 445) buttonAceptar.clicked.connect(self.Aceptar) buttonCerrar.clicked.connect(self.close) def Aceptar(self): nombre = " ".join(self.lineEditNombre.text().split()).title() apellido = " ".join(self.lineEditApellido.text().split()).title() sexo = self.comboBoxSexo.currentText() fecNacimiento = self.dateEditFechaNacimiento.text() pais = " ".join(self.lineEditPais.text().split()).title() telCel = self.lineEditTelCel.text() if not nombre: self.lineEditNombre.setFocus() elif not apellido: self.lineEditApellido.setFocus() elif not sexo: self.comboBoxSexo.setFocus() elif not pais: self.lineEditPais.setFocus() elif not telCel: self.lineEditTelCel.setFocus() else: if QFile.exists("DB_SIACLE/DB_SIACLE.db"): conexion = sqlite3.connect("DB_SIACLE/DB_SIACLE.db") cursor = conexion.cursor() try: datos = [nombre, apellido, sexo, fecNacimiento, pais, telCel] cursor.execute("INSERT INTO CLIENTES (NOMBRE, APELLIDO, SEXO, " "FECHA_NACIMIENTO, PAIS, TELEFONO_CELULAR) " "VALUES (?,?,?,?,?,?)", datos) conexion.commit() conexion.close() self.lineEditNombre.clear() self.lineEditApellido.clear() self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.lineEditPais.clear() self.lineEditTelCel.clear() QMessageBox.information(self, "Новый клиент", "Клиент зарегестрирован. ", QMessageBox.Ok) except: conexion.close() QMessageBox.critical(self, "Новый клиент", "Неизвестная ошибка. ", QMessageBox.Ok) else: QMessageBox.critical(self, "Новый клиент", "База данных не найдена." " ", QMessageBox.Ok) self.lineEditNombre.setFocus()
class nuevoCliente(QDialog): def __init__(self, parent=None): super(nuevoCliente, self).__init__() self.setWindowIcon(QIcon("Imagenes/Qt.png")) self.setWindowTitle("Nuevo cliente") self.setWindowFlags(Qt.WindowCloseButtonHint | Qt.MSWindowsFixedSizeDialogHint) self.setFixedSize(320, 478) self.initUI() def initUI(self): # =========== WIDGETS GROUPBOX DATOS GENERALES ============= self.groupBoxDatosGenerales = QGroupBox("Datos generales", self) self.groupBoxDatosGenerales.setFixedSize(300, 223) self.groupBoxDatosGenerales.move(10, 13) labelNombre = QLabel("<font color='#FF3300'>*</font> Nombre", self.groupBoxDatosGenerales) labelNombre.move(15, 28) self.lineEditNombre = QLineEdit(self.groupBoxDatosGenerales) self.lineEditNombre.setValidator(QRegExpValidator(QRegExp("[a-zA-Zá-úÁ-ÚñÑ ]+"), self.lineEditNombre)) self.lineEditNombre.setMaxLength(30) self.lineEditNombre.setFixedWidth(270) self.lineEditNombre.setFocus() self.lineEditNombre.move(15, 46) labelApellido = QLabel("<font color='#FF3300'>*</font> Apellido", self.groupBoxDatosGenerales) labelApellido.move(15, 74) self.lineEditApellido = QLineEdit(self.groupBoxDatosGenerales) self.lineEditApellido.setValidator(QRegExpValidator(QRegExp("[a-zA-Zá-úÁ-ÚñÑ ]+"), self.lineEditApellido)) self.lineEditApellido.setMaxLength(30) self.lineEditApellido.setFixedWidth(270) self.lineEditApellido.move(15, 92) labelSexo = QLabel("<font color='#FF3300'>*</font> Sexo", self.groupBoxDatosGenerales) labelSexo.move(15, 120) self.comboBoxSexo = QComboBox(self.groupBoxDatosGenerales) self.comboBoxSexo.addItems(["Masculino", "Femenino"]) self.comboBoxSexo.setCurrentIndex(-1) self.comboBoxSexo.setFixedWidth(270) self.comboBoxSexo.move(15, 138) labelFechaNacimiento = QLabel("<font color='#FF3300'>*</font> Fecha de nacimiento", self.groupBoxDatosGenerales) labelFechaNacimiento.move(15, 166) self.dateEditFechaNacimiento = QDateEdit(self.groupBoxDatosGenerales) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.dateEditFechaNacimiento.setMaximumDate(QDate.currentDate()) self.dateEditFechaNacimiento.setDisplayFormat("dd/MM/yyyy") self.dateEditFechaNacimiento.setCalendarPopup(True) self.dateEditFechaNacimiento.setCursor(Qt.PointingHandCursor) self.dateEditFechaNacimiento.setFixedWidth(270) self.dateEditFechaNacimiento.move(15, 184) # ============== WIDGETS GROUPBOX UBICACIÓN ================ self.groupBoxUbicacion = QGroupBox("Ubicación", self) self.groupBoxUbicacion.setFixedSize(300, 86) self.groupBoxUbicacion.move(10, 250) labelPais = QLabel("<font color='#FF3300'>*</font> País", self.groupBoxUbicacion) labelPais.move(15, 28) self.lineEditPais = QLineEdit(self.groupBoxUbicacion) self.lineEditPais.setMaxLength(30) self.lineEditPais.setFixedWidth(270) self.lineEditPais.move(15, 48) # ============== WIDGETS GROUPBOX CONTACTO ================= self.groupBoxContacto = QGroupBox("Contacto", self) self.groupBoxContacto.setFixedSize(300, 86) self.groupBoxContacto.move(10, 350) labelTelCel = QLabel("<font color='#FF3300'>*</font> Teléfono o celular", self.groupBoxContacto) labelTelCel.move(15, 28) self.lineEditTelCel = QLineEdit(self.groupBoxContacto) self.lineEditTelCel.setInputMask("9999999999999999; ") self.lineEditTelCel.setFixedWidth(270) self.lineEditTelCel.move(15, 48) # ========================================================== labelInformacion = QLabel("<font color='#FF3300'>*</font> Campos obligatorios.", self) labelInformacion.move(10, 445) # ======================== BOTONES ========================= buttonAceptar = QPushButton("Aceptar", self) buttonAceptar.setCursor(Qt.PointingHandCursor) buttonAceptar.move(154, 445) buttonCerrar = QPushButton("Cerrar", self) buttonCerrar.setCursor(Qt.PointingHandCursor) buttonCerrar.move(236, 445) # ==================== EVENTOS BOTONES ===================== buttonAceptar.clicked.connect(self.Aceptar) buttonCerrar.clicked.connect(self.close) # ========================= FUNCIONES ========================== def Aceptar(self): nombre = " ".join(self.lineEditNombre.text().split()).title() apellido = " ".join(self.lineEditApellido.text().split()).title() sexo = self.comboBoxSexo.currentText() fecNacimiento = self.dateEditFechaNacimiento.text() pais = " ".join(self.lineEditPais.text().split()).title() telCel = self.lineEditTelCel.text() if not nombre: self.lineEditNombre.setFocus() elif not apellido: self.lineEditApellido.setFocus() elif not sexo: self.comboBoxSexo.setFocus() elif not pais: self.lineEditPais.setFocus() elif not telCel: self.lineEditTelCel.setFocus() else: if QFile.exists("DB_SIACLE/DB_SIACLE.db"): conexion = sqlite3.connect("DB_SIACLE/DB_SIACLE.db") cursor = conexion.cursor() try: datos = [nombre, apellido, sexo, fecNacimiento, pais, telCel] cursor.execute("INSERT INTO CLIENTES (NOMBRE, APELLIDO, SEXO, " "FECHA_NACIMIENTO, PAIS, TELEFONO_CELULAR) " "VALUES (?,?,?,?,?,?)", datos) conexion.commit() conexion.close() self.lineEditNombre.clear() self.lineEditApellido.clear() self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.lineEditPais.clear() self.lineEditTelCel.clear() QMessageBox.information(self, "Nuevo cliente", "Cliente registrado. ", QMessageBox.Ok) except: conexion.close() QMessageBox.critical(self, "Nuevo cliente", "Error desconocido. ", QMessageBox.Ok) else: QMessageBox.critical(self, "Nuevo cliente", "No se encontro la base de datos." " ", QMessageBox.Ok) self.lineEditNombre.setFocus()
class actualizarCliente(QDialog): def __init__(self, indice, datos, parent=None): super(actualizarCliente, self).__init__() self.parent = parent self.indice = indice self.datos = datos self.setWindowIcon(QIcon("Imagenes/ch.png")) self.setWindowTitle("Обновление клиента") self.setWindowFlags(Qt.WindowCloseButtonHint | Qt.MSWindowsFixedSizeDialogHint) self.setFixedSize(320, 478) self.initUI() def initUI(self): self.groupBoxDatosGenerales = QGroupBox("Общие данные ", self) self.groupBoxDatosGenerales.setFixedSize(300, 223) self.groupBoxDatosGenerales.move(10, 13) labelNombre = QLabel("<font color='#FF3300'>*</font> Имя", self.groupBoxDatosGenerales) labelNombre.move(15, 28) self.lineEditNombre = QLineEdit(self.groupBoxDatosGenerales) self.lineEditNombre.setValidator(QRegExpValidator(QRegExp("[a-zA-Z ]+"), self.lineEditNombre)) self.lineEditNombre.setMaxLength(30) self.lineEditNombre.setFixedWidth(270) self.lineEditNombre.setFocus() self.lineEditNombre.move(15, 46) labelApellido = QLabel("<font color='#FF3300'>*</font> Фамилия", self.groupBoxDatosGenerales) labelApellido.move(15, 74) self.lineEditApellido = QLineEdit(self.groupBoxDatosGenerales) self.lineEditApellido.setValidator(QRegExpValidator(QRegExp("[a-zA-Z ]+"), self.lineEditApellido)) self.lineEditApellido.setMaxLength(30) self.lineEditApellido.setFixedWidth(270) self.lineEditApellido.move(15, 92) labelSexo = QLabel("<font color='#FF3300'>*</font> Пол", self.groupBoxDatosGenerales) labelSexo.move(15, 120) self.comboBoxSexo = QComboBox(self.groupBoxDatosGenerales) self.comboBoxSexo.addItems(["М", "Ж"]) self.comboBoxSexo.setCurrentIndex(-1) self.comboBoxSexo.setFixedWidth(270) self.comboBoxSexo.move(15, 138) labelFechaNacimiento = QLabel("<font color='#FF3300'>*</font> Дата рождения", self.groupBoxDatosGenerales) labelFechaNacimiento.move(15, 166) self.dateEditFechaNacimiento = QDateEdit(self.groupBoxDatosGenerales) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.dateEditFechaNacimiento.setMaximumDate(QDate.currentDate()) self.dateEditFechaNacimiento.setDisplayFormat("dd/MM/yyyy") self.dateEditFechaNacimiento.setCalendarPopup(True) self.dateEditFechaNacimiento.setCursor(Qt.PointingHandCursor) self.dateEditFechaNacimiento.setFixedWidth(270) self.dateEditFechaNacimiento.move(15, 184) self.groupBoxUbicacion = QGroupBox("Проживание", self) self.groupBoxUbicacion.setFixedSize(300, 86) self.groupBoxUbicacion.move(10, 250) labelPais = QLabel("<font color='#FF3300'>*</font> Страна", self.groupBoxUbicacion) labelPais.move(15, 28) self.lineEditPais = QLineEdit(self.groupBoxUbicacion) self.lineEditPais.setMaxLength(30) self.lineEditPais.setFixedWidth(270) self.lineEditPais.move(15, 48) self.groupBoxContacto = QGroupBox("Контакты", self) self.groupBoxContacto.setFixedSize(300, 86) self.groupBoxContacto.move(10, 350) labelTelCel = QLabel("<font color='#FF3300'>*</font> Номер телефона", self.groupBoxContacto) labelTelCel.move(15, 28) self.lineEditTelCel = QLineEdit(self.groupBoxContacto) self.lineEditTelCel.setInputMask("9999999999999999; ") self.lineEditTelCel.setFixedWidth(270) self.lineEditTelCel.move(15, 48) labelInformacion = QLabel("<font color='#FF3300'>*</font> Обязательные поля.", self) labelInformacion.move(10, 445) buttonActualizar = QPushButton("Обновить", self) buttonActualizar.setCursor(Qt.PointingHandCursor) buttonActualizar.move(154, 445) buttonCerrar = QPushButton("Закрыть", self) buttonCerrar.setCursor(Qt.PointingHandCursor) buttonCerrar.move(236, 445) buttonActualizar.clicked.connect(self.Actualizar) buttonCerrar.clicked.connect(self.close) self.cargarDatos(self.datos) def cargarDatos(self, datos): self.lineEditNombre.setText(datos[1]) self.lineEditApellido.setText(datos[2]) itemsComboBox = [self.comboBoxSexo.itemText(i) for i in range(self.comboBoxSexo.count())] if datos[3] in itemsComboBox: posicionItem = itemsComboBox.index(datos[3]) self.comboBoxSexo.setCurrentIndex(posicionItem) else: self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.fromString(datos[4], "dd/MM/yyyy")) self.lineEditPais.setText(datos[5]) self.lineEditTelCel.setText(datos[6]) return def Actualizar(self): nombre = " ".join(self.lineEditNombre.text().split()).title() apellido = " ".join(self.lineEditApellido.text().split()).title() sexo = self.comboBoxSexo.currentText() fecNacimiento = self.dateEditFechaNacimiento.text() pais = " ".join(self.lineEditPais.text().split()).title() telCel = self.lineEditTelCel.text() if not nombre: self.lineEditNombre.setFocus() elif not apellido: self.lineEditApellido.setFocus() elif not sexo: self.comboBoxSexo.setFocus() elif not pais: self.lineEditPais.setFocus() elif not telCel: self.lineEditTelCel.setFocus() else: if QFile.exists("DB_SIACLE/DB_SIACLE.db"): conexion = sqlite3.connect("DB_SIACLE/DB_SIACLE.db") cursor = conexion.cursor() try: datos = [nombre, apellido, sexo, fecNacimiento, pais, telCel, self.datos[0]] cursor.execute("UPDATE CLIENTES SET NOMBRE = ?, APELLIDO = ?, SEXO = ?, " "FECHA_NACIMIENTO = ?, PAIS = ?, TELEFONO_CELULAR = ? " "WHERE ID = ?", datos) conexion.commit() conexion.close() nuevos_datos = (str(self.datos[0]), nombre, apellido, sexo, fecNacimiento, pais, telCel) self.parent.tabla.removeRow(self.indice) numFilas = self.parent.tabla.rowCount() self.parent.tabla.insertRow(numFilas) for indice, dato in enumerate(nuevos_datos): dato = QTableWidgetItem(dato) if indice == 0: dato.setTextAlignment(Qt.AlignCenter) self.parent.tabla.setItem(numFilas, indice, dato) self.lineEditNombre.clear() self.lineEditApellido.clear() self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.lineEditPais.clear() self.lineEditTelCel.clear() QMessageBox.information(self, "Обновление клиента ", "Клиент обновлен." " ", QMessageBox.Ok) self.close() except: conexion.close() QMessageBox.critical(self, "Обновление клиента", "Неизвестная ошибка. ", QMessageBox.Ok) else: QMessageBox.critical(self, "Обновление клиента", "База не найдена " "datos. ", QMessageBox.Ok)
class actualizarCliente(QDialog): def __init__(self, indice, datos, parent=None): super(actualizarCliente, self).__init__() self.parent = parent self.indice = indice self.datos = datos self.setWindowIcon(QIcon("Imagenes/Qt.png")) self.setWindowTitle("Actualizar cliente") self.setWindowFlags(Qt.WindowCloseButtonHint | Qt.MSWindowsFixedSizeDialogHint) self.setFixedSize(320, 478) self.initUI() def initUI(self): # =========== WIDGETS GROUPBOX DATOS GENERALES ============= self.groupBoxDatosGenerales = QGroupBox("Datos generales", self) self.groupBoxDatosGenerales.setFixedSize(300, 223) self.groupBoxDatosGenerales.move(10, 13) labelNombre = QLabel("<font color='#FF3300'>*</font> Nombre", self.groupBoxDatosGenerales) labelNombre.move(15, 28) self.lineEditNombre = QLineEdit(self.groupBoxDatosGenerales) self.lineEditNombre.setValidator(QRegExpValidator(QRegExp("[a-zA-Zá-úÁ-ÚñÑ ]+"), self.lineEditNombre)) self.lineEditNombre.setMaxLength(30) self.lineEditNombre.setFixedWidth(270) self.lineEditNombre.setFocus() self.lineEditNombre.move(15, 46) labelApellido = QLabel("<font color='#FF3300'>*</font> Apellido", self.groupBoxDatosGenerales) labelApellido.move(15, 74) self.lineEditApellido = QLineEdit(self.groupBoxDatosGenerales) self.lineEditApellido.setValidator(QRegExpValidator(QRegExp("[a-zA-Zá-úÁ-ÚñÑ ]+"), self.lineEditApellido)) self.lineEditApellido.setMaxLength(30) self.lineEditApellido.setFixedWidth(270) self.lineEditApellido.move(15, 92) labelSexo = QLabel("<font color='#FF3300'>*</font> Sexo", self.groupBoxDatosGenerales) labelSexo.move(15, 120) self.comboBoxSexo = QComboBox(self.groupBoxDatosGenerales) self.comboBoxSexo.addItems(["Masculino", "Femenino"]) self.comboBoxSexo.setCurrentIndex(-1) self.comboBoxSexo.setFixedWidth(270) self.comboBoxSexo.move(15, 138) labelFechaNacimiento = QLabel("<font color='#FF3300'>*</font> Fecha de nacimiento", self.groupBoxDatosGenerales) labelFechaNacimiento.move(15, 166) self.dateEditFechaNacimiento = QDateEdit(self.groupBoxDatosGenerales) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.dateEditFechaNacimiento.setMaximumDate(QDate.currentDate()) self.dateEditFechaNacimiento.setDisplayFormat("dd/MM/yyyy") self.dateEditFechaNacimiento.setCalendarPopup(True) self.dateEditFechaNacimiento.setCursor(Qt.PointingHandCursor) self.dateEditFechaNacimiento.setFixedWidth(270) self.dateEditFechaNacimiento.move(15, 184) # ============== WIDGETS GROUPBOX UBICACIÓN ================ self.groupBoxUbicacion = QGroupBox("Ubicación", self) self.groupBoxUbicacion.setFixedSize(300, 86) self.groupBoxUbicacion.move(10, 250) labelPais = QLabel("<font color='#FF3300'>*</font> País", self.groupBoxUbicacion) labelPais.move(15, 28) self.lineEditPais = QLineEdit(self.groupBoxUbicacion) self.lineEditPais.setMaxLength(30) self.lineEditPais.setFixedWidth(270) self.lineEditPais.move(15, 48) # ============== WIDGETS GROUPBOX CONTACTO ================= self.groupBoxContacto = QGroupBox("Contacto", self) self.groupBoxContacto.setFixedSize(300, 86) self.groupBoxContacto.move(10, 350) labelTelCel = QLabel("<font color='#FF3300'>*</font> Teléfono o celular", self.groupBoxContacto) labelTelCel.move(15, 28) self.lineEditTelCel = QLineEdit(self.groupBoxContacto) self.lineEditTelCel.setInputMask("9999999999999999; ") self.lineEditTelCel.setFixedWidth(270) self.lineEditTelCel.move(15, 48) # ========================================================== labelInformacion = QLabel("<font color='#FF3300'>*</font> Campos obligatorios.", self) labelInformacion.move(10, 445) # ======================== BOTONES ========================= buttonActualizar = QPushButton("Actualizar", self) buttonActualizar.setCursor(Qt.PointingHandCursor) buttonActualizar.move(154, 445) buttonCerrar = QPushButton("Cerrar", self) buttonCerrar.setCursor(Qt.PointingHandCursor) buttonCerrar.move(236, 445) # ==================== EVENTOS BOTONES ===================== buttonActualizar.clicked.connect(self.Actualizar) buttonCerrar.clicked.connect(self.close) # ================= FUNCIONES AUTOMÁTICAS ================== self.cargarDatos(self.datos) # ========================= FUNCIONES ========================== def cargarDatos(self, datos): # datos = ["Id", "Nombre", "Apellido", "Sexo", "Fecha de nacimiento", "País", # "Teléfono o celular"] self.lineEditNombre.setText(datos[1]) self.lineEditApellido.setText(datos[2]) itemsComboBox = [self.comboBoxSexo.itemText(i) for i in range(self.comboBoxSexo.count())] if datos[3] in itemsComboBox: posicionItem = itemsComboBox.index(datos[3]) self.comboBoxSexo.setCurrentIndex(posicionItem) else: self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.fromString(datos[4], "dd/MM/yyyy")) self.lineEditPais.setText(datos[5]) self.lineEditTelCel.setText(datos[6]) return def Actualizar(self): nombre = " ".join(self.lineEditNombre.text().split()).title() apellido = " ".join(self.lineEditApellido.text().split()).title() sexo = self.comboBoxSexo.currentText() fecNacimiento = self.dateEditFechaNacimiento.text() pais = " ".join(self.lineEditPais.text().split()).title() telCel = self.lineEditTelCel.text() if not nombre: self.lineEditNombre.setFocus() elif not apellido: self.lineEditApellido.setFocus() elif not sexo: self.comboBoxSexo.setFocus() elif not pais: self.lineEditPais.setFocus() elif not telCel: self.lineEditTelCel.setFocus() else: if QFile.exists("DB_SIACLE/DB_SIACLE.db"): conexion = sqlite3.connect("DB_SIACLE/DB_SIACLE.db") cursor = conexion.cursor() try: datos = [nombre, apellido, sexo, fecNacimiento, pais, telCel, self.datos[0]] cursor.execute("UPDATE CLIENTES SET NOMBRE = ?, APELLIDO = ?, SEXO = ?, " "FECHA_NACIMIENTO = ?, PAIS = ?, TELEFONO_CELULAR = ? " "WHERE ID = ?", datos) conexion.commit() conexion.close() nuevos_datos = (str(self.datos[0]), nombre, apellido, sexo, fecNacimiento, pais, telCel) self.parent.tabla.removeRow(self.indice) numFilas = self.parent.tabla.rowCount() self.parent.tabla.insertRow(numFilas) for indice, dato in enumerate(nuevos_datos): dato = QTableWidgetItem(dato) if indice == 0: dato.setTextAlignment(Qt.AlignCenter) self.parent.tabla.setItem(numFilas, indice, dato) self.lineEditNombre.clear() self.lineEditApellido.clear() self.comboBoxSexo.setCurrentIndex(-1) self.dateEditFechaNacimiento.setDate(QDate.currentDate()) self.lineEditPais.clear() self.lineEditTelCel.clear() QMessageBox.information(self, "Actualizar cliente", "Cliente actualizado." " ", QMessageBox.Ok) self.close() except: conexion.close() QMessageBox.critical(self, "Actualizar cliente", "Error desconocido. ", QMessageBox.Ok) else: QMessageBox.critical(self, "Actualizar cliente", "No se encontro la base de " "datos. ", QMessageBox.Ok)