· 8 years ago · Apr 18, 2018, 02:06 PM
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3
4# Aplicacion grafica con sqlite3
5# www.pythondiario.com
6# http://www.pythondiario.com/2014/11/aplicacion-grafica-con-pyqt4-y-sqlite3.html
7
8import sys
9import sqlite3
10from PyQt4 import QtCore, QtGui, uic
11
12# Cargar nuestro archivo .ui
13form_class = uic.loadUiType("conBase2.ui")[0]
14
15class MyWindowClass(QtGui.QMainWindow, form_class):
16 def __init__(self, parent=None):
17 QtGui.QMainWindow.__init__(self, parent)
18 self.setupUi(self)
19 self.btn_Guardar.clicked.connect(self.btn_Guardar_clicked)
20 self.btn_Cargar.clicked.connect(self.btn_Cargar_clicked)
21 self.IniciarBase()
22
23
24 def IniciarBase(self):
25 self.con = sqlite3.connect("./pruebaconBase2.bd")
26 self.cursor = self.con.cursor()
27 self.cursor.execute ("""CREATE TABLE IF NOT EXISTS campos(NOMBRE TEXT NOT NULL, APELLIDO TEXT NOT NULL, LOCALIDAD TEXT NOT NULL)""" )
28 self.con.commit()
29
30 # Evento del boton Guardar
31 def btn_Guardar_clicked(self):
32
33 self.con = sqlite3.connect("./pruebaconBase2.bd")
34 self.cursor = self.con.cursor()
35
36 # Datos
37 self.nombre = str(self.lineEdit.text())
38 self.apellido = str(self.lineEdit_2.text())
39 self.localidad = str(self.lineEdit_3.text())
40 self.datos = (self.nombre, self.apellido, self.localidad)
41
42 # Inserta los datos en la tabla campos
43 self.cursor.execute("INSERT INTO campos (nombre, apellido, localidad) VALUES (?,?,?)", self.datos)
44 self.con.commit()
45
46 # Quedan los campos vacios al guardar cliente
47 self.lineEdit.setText("")
48 self.lineEdit_2.setText("")
49 self.lineEdit_3.setText("")
50
51 self.con.commit()
52 self.con.close()
53
54 # Evento del boton Caragar
55 def btn_Cargar_clicked(self):
56
57 self.con = sqlite3.connect("./pruebaconBase2.bd")
58 self.cursor = self.con.cursor()
59
60 # Se cargan los datos indicados de la tabla
61 self.cursor.execute("SELECT NOMBRE, APELLIDO, LOCALIDAD FROM campos")
62
63 # Al presionar el boton lo primero es borrar todos los datos
64 self.lista.clear()
65
66 # Se agregan los elementos al QListWidget
67 for i in self.cursor:
68 self.nombre = str(i[0])
69 self.apellido = str(i[1])
70 self.localidad = str(i[2])
71
72 self.lista.addItem(self.nombre + " - " + self.apellido + " - " + self.localidad)
73
74 self.con.commit()
75 self.con.close()
76
77
78# iniciar la interfaz gráfica
79app = QtGui.QApplication(sys.argv)
80MyWindow = MyWindowClass(None)
81MyWindow.show()
82app.exec_()
83
84<?xml version="1.0" encoding="UTF-8"?>
85<ui version="4.0">
86 <class>Form</class>
87 <widget class="QWidget" name="Form">
88 <property name="geometry">
89 <rect>
90 <x>0</x>
91 <y>0</y>
92 <width>731</width>
93 <height>438</height>
94 </rect>
95 </property>
96 <property name="windowTitle">
97 <string>Connect</string>
98 </property>
99 <layout class="QVBoxLayout" name="verticalLayout">
100 <item>
101 <widget class="QFrame" name="frame">
102 <property name="frameShape">
103 <enum>QFrame::StyledPanel</enum>
104 </property>
105 <property name="frameShadow">
106 <enum>QFrame::Raised</enum>
107 </property>
108 <layout class="QGridLayout" name="gridLayout">
109 <item row="0" column="0" colspan="3">
110 <widget class="QPushButton" name="pbnMostrarProyectos">
111 <property name="text">
112 <string>Mostrar Proyectos Guardados en la Tabla</string>
113 </property>
114 </widget>
115 </item>
116
117<item row="2" column="0" rowspan="9" colspan="3">
118 <widget class="QTableView" name="tableView"/>
119 </item>
120
121model = QtSql.QSqlTableModel(self)
122 model.setTable("proyectos")
123 model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
124 model.select()
125 view = QTableView()
126 view.setModel(model)
127 view.show
128
129#!/usr/bin/python
130 # -*- coding: utf-8 -*-
131
132 # Aplicacion grafica con sqlite3
133 # www.pythondiario.com
134 # http://www.pythondiario.com/2014/11/aplicacion-grafica-con-pyqt4-y-sqlite3.html
135
136 import sys
137 import sqlite3
138 from PyQt4 import QtCore, QtGui, uic
139
140 # Cargar nuestro archivo .ui
141 form_class = uic.loadUiType("conBase.ui")[0]
142
143 class MyWindowClass(QtGui.QMainWindow, form_class):
144 def __init__(self, parent=None):
145 QtGui.QMainWindow.__init__(self, parent)
146 self.setupUi(self)
147 self.btn_Guardar.clicked.connect(self.btn_Guardar_clicked)
148 self.btn_Cargar.clicked.connect(self.btn_Cargar_clicked)
149 self.IniciarBase()
150 self._modelo = MyTableModel(["NOMBRE", "APELLIDO", "LOCALIDAD"])
151 self.lista.setModel(self._modelo)
152
153
154 def IniciarBase(self):
155 self.con = sqlite3.connect("./pruebaconBase2.bd")
156 self.cursor = self.con.cursor()
157 self.cursor.execute ("""CREATE TABLE IF NOT EXISTS campos(NOMBRE TEXT NOT NULL, APELLIDO TEXT NOT NULL, LOCALIDAD TEXT NOT NULL)""" )
158 self.con.commit()
159
160 # Evento del boton Guardar
161 def btn_Guardar_clicked(self):
162
163 self.con = sqlite3.connect("./pruebaconBase2.bd")
164 self.cursor = self.con.cursor()
165
166 # Datos
167 self.nombre = str(self.lineEdit.text())
168 self.apellido = str(self.lineEdit_2.text())
169 self.localidad = str(self.lineEdit_3.text())
170 self.datos = (self.nombre, self.apellido, self.localidad)
171
172 # Inserta los datos en la tabla campos
173 self.cursor.execute("INSERT INTO campos (nombre, apellido, localidad) VALUES (?,?,?)", self.datos)
174 self.con.commit()
175
176 # Quedan los campos vacios al guardar cliente
177 self.lineEdit.setText("")
178 self.lineEdit_2.setText("")
179 self.lineEdit_3.setText("")
180
181 self.con.commit()
182 self.con.close()
183
184 # Evento del boton Caragar
185 def btn_Cargar_clicked(self):
186
187 self.con = sqlite3.connect("./pruebaconBase2.bd")
188 self.cursor = self.con.cursor()
189
190 # Se cargan los datos indicados de la tabla
191 self.cursor.execute("SELECT NOMBRE, APELLIDO, LOCALIDAD FROM campos")
192
193 # Al presionar el boton lo primero es borrar todos los datos
194 self.lista.model().clear()
195
196 # Se agregan los elementos al QListWidget
197 for i in self.cursor:
198 self.nombre = str(i[0])
199 self.apellido = str(i[1])
200 self.localidad = str(i[2])
201
202 self._modelo.Table.append([self.nombre, self.apellido, self.localidad])
203 self._modelo.layoutChanged.emit()
204
205
206
207 self.con.commit()
208 self.con.close()
209
210 class MyTableModel(QtCore.QAbstractTableModel):
211 def __init__(self, headers, table = None, parent = None):
212 super(MyTableModel, self).__init__(parent)
213 if not table:
214 self._table = []
215 else:
216 self._table = table
217 self._headers = headers
218
219 Table = property(lambda s: s._table)
220
221 def rowCount(self, parent = None):
222 return len(self._table)
223
224 def columnCount(self, parent = None):
225 return len(self._headers)
226
227 def data(self, index, role = QtCore.Qt.DisplayRole):
228 if role == QtCore.Qt.DisplayRole:
229 if index.isValid():
230 row = index.row()
231 col = index.column()
232 if 0 <= row < self.rowCount():
233 if 0 <= col < self.columnCount():
234 return self._table[row][col]
235
236 def headerData(self, section, orientation, role = QtCore.Qt.DisplayRole):
237 if role != QtCore.Qt.DisplayRole:
238 return None
239 if orientation == QtCore.Qt.Horizontal:
240 if 0 <= section < self.columnCount():
241 return str(self._headers[section])
242 else:
243 None
244 if orientation == QtCore.Qt.Vertical:
245 if len(self._table) < 1: return ""
246 if 0 <= section < len(self._table):
247 return str(section + 1)
248
249 def clear(self):
250 self._table = []
251
252
253 # iniciar la interfaz gráfica
254 app = QtGui.QApplication(sys.argv)
255 MyWindow = MyWindowClass(None)
256 MyWindow.show()
257 app.exec_()