QT - ayuda por favor

   
Vista:

ayuda por favor

Publicado por hito (6 intervenciones) el 25/11/2014 04:58:14
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de QT
- Cursos de QT
- Temas de QT
información
Cursos y Temas de QT
- Aprenda Qt4 desde hoy mismo
- Manual de programación QT
- Crear un proyecto QT con DEV-CPP