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
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
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
0