este es el codigo principal que estoy haciendo
Código:
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtSql import * from ui_files import ventanaprincipal from ui_files import crearusuario from ui_files import acceso from ui_files import modusuario from ui_files import eliusuario from ui_files import nuevolibro from ui_files import modlibro from ui_files import elilibro from ui_files import nuevatesis from ui_files import modtesis from ui_files import elitesis from ui_files import nuevomaterial from ui_files import modmaterial from ui_files import elimaterial from ui_files import nuevooperador from ui_files import modoperador from ui_files import elioperador from ui_files import nuevoautor from ui_files import nuevoautortesis from ui_files import nuevoeditorial from ui_files import nuevamateria from ui_files import nuevotipo from ui_files import conlibro from ui_files import contesis from ui_files import conmaterial from ui_files import retorno from ui_files import novedad #como me ha resultado conetar filename ="testui.db" db = QSqlDatabase.addDatabase("QSQLITE") db.setDatabaseName(filename) if not db.open(): QMessageBox.warning(None, "Phone Log", QString("Database Error: %1").arg(db.lastError().text())) sys.exit(1) query = QSqlQuery() query.exec_("DROP TABLE usuario") query.exec_("""CREATE TABLE usuario ( id_usu INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, nom VARCHAR(20) , ape VARCHAR(20) , ced INT(10) , den VARCHAR(20) , fec_crea DATE , fec_mod DATE )""") query.exec_("INSERT INTO usuario (nom, ape, ced,den) VALUES ('Carlos','Campos',15889456,'Profesor')") query.exec_("INSERT INTO usuario (nom, ape, ced) VALUES ('beto','Campos',15789456)") query.exec_("INSERT INTO usuario (nom, ape, ced) VALUES ('jose','Campos',15589456)") class Mod_usu (QDialog,modusuario.Ui_Dialog): def __init__(self,parent=None): super(Mod_usu,self).__init__(parent) self.setupUi(self) self.fecha.setDateTime(QDateTime.currentDateTime()) self.model= QSqlTableModel(self) self.model.setTable("usuario") self.model.select() self.mapper= QDataWidgetMapper(self) self.mapper.setSubmitPolicy(QDataWidgetMapper.ManualSubmit) self.mapper.setModel(self.model) self.mapper.addMapping(self.idedit,0) self.mapper.addMapping(self.cedusuedit,3) self.mapper.addMapping(self.nomusuEdit,1) self.mapper.addMapping(self.apeusuedit,2) self.mapper.addMapping(self.denusubox,4) self.mapper.addMapping(self.fecha,6) self.mapper.toFirst() self.bususubtn.clicked.connect(self.buscar_clicked) self.save.clicked.connect(self.guardar_clicked) self.firstbtn.clicked.connect(self.first_clicked) self.backbtn.clicked.connect(self.back_cliked) self.nextbtn.clicked.connect(self.next_cliked) self.lastbtn.clicked.connect(self.last_clicked) def buscar_clicked (self): row=self.mapper.currentIndex() print(row) def first_clicked (self): self.mapper.toFirst() def back_cliked (self): self.mapper.toPrevious() def next_cliked (self): self.mapper.toNext() def last_clicked (self): self.mapper.toLast() def guardar_clicked (self): row = self.model.rowCount() self.mapper.submit() self.mapper.setCurrentIndex(row) QMessageBox.information(self, "Hello", " guardo correctamente") print (row) app= QApplication (sys.argv) form = Mod_usu() form.show() app.exec_()
como pueden ver la base de datos esta conectada y el model ya esta configurado y tambien el mapper si pulso los botones puedo navergar en los registros sin problemas mi problema es que cuando los registros sean muchos buscar uno a uno no se va a poder y no se como hacer para hacer el boton buscar pense que por query de sql podia hacerlo pero no se como hacer que el model.curentIdex se modifique