#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import sys
import os
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4 import QtSql
from gui import Ui_MainWindow
class Programa(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.modelo = self.generaModelo()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.tabla.setModel(self.modelo)
self.reajusta()
QtCore.QObject.connect(self.ui.action_Salir, QtCore.SIGNAL("activated()"),QtGui.qApp,QtCore.SLOT("quit()") )
QtCore.QObject.connect(self.ui.Refrescar, QtCore.SIGNAL("clicked()"),self.refrescar)
QtCore.QObject.connect(self.ui.Nuevalinea, QtCore.SIGNAL("clicked()"),self.nuevaLinea)
QtCore.QObject.connect(self.ui.eliminarLinea, QtCore.SIGNAL("clicked()"),self.eliminarLinea)
QtCore.QObject.connect(self.ui.abrirDoc, QtCore.SIGNAL("clicked()"),self.abrirDoc)
def generaModelo(self):
self.conectaDB()
modelo = QtSql.QSqlTableModel(None,self.db)
modelo.setTable('accesos')
modelo.setSort(self.recordPrototipo.indexOf('idAcceso'),
QtCore.Qt.AscendingOrder)
modelo.select()
return modelo
def conectaDB(self):
self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
self.db.setHostName('')
self.db.setDatabaseName('Accesos2.db')
self.db.setUserName('')
self.db.setPassword('')
name = self.db.open()
query = QtSql.QSqlQuery('select * from accesos',self.db)
self.recordPrototipo = query.record()
def reajusta(self):
self.ui.tabla.resizeColumnsToContents()
def nuevaLinea(self):
fila = self.modelo.rowCount()
self.modelo.insertRow(fila)
self.reajusta()
def eliminarLinea(self):
index = self.ui.tabla.currentIndex()
fila = index.row()
id = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('idAcceso'))).toString()
nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('Ruta'))).toString()
if QtGui.QMessageBox.question(self, 'Borrar linea',
QtCore.QString("¿Desea borrar el producto #%1, #%2?").arg(idAcceso).arg(Ruta),
QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) == QtGui.QMessageBox.Yes:
self.modelo.removeRow(fila)
self.reajusta()
def refrescar(self):
self.modelo.select()
def abrirDoc(self):
index = self.ui.tabla.currentIndex()
fila = index.row()
## La línea donde tiene recogido el PATH, tambien he probado a poner 'u' delante de la cadena
nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf ('Ruta'))).toString ()
os.startfile (nombre)
if __name__ == '__main__':
app = QtGui.QApplication (sys.argv)
myapp = Programa()
myapp.show()
sys.exit(app.exec_())