
24/11/2014, 21:51
|
| | Fecha de Ingreso: junio-2014 Ubicación: Maracay
Mensajes: 7
Antigüedad: 10 años, 8 meses Puntos: 0 | |
Problemas con GUI pyqt y base de datos buenas noches estoy haciendo una app y no encuentro la manera de hacer un boton para buscar un dato en una tabla y en el resto del GUI se me muestren los demas valores del registro para modificarlos
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 |