Foros del Web » Programando para Internet » Python »

Problemas con GUI pyqt y base de datos

Estas en el tema de Problemas con GUI pyqt y base de datos en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/11/2014, 21:51
 
Fecha de Ingreso: junio-2014
Ubicación: Maracay
Mensajes: 7
Antigüedad: 10 años, 4 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

Etiquetas: gui
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.