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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
| # -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'tableWidaget.ui'
#
# Created: Wed Aug 13 12:27:35 2014
# by: PyQt4 UI code generator 4.10.2
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4.QtGui import QAbstractItemView
from PyQt4.QtCore import QObject, pyqtSignal
from PyQt4.QtCore import QEvent
import psycopg2
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Srid(QtGui.QDialog):
signal_srid = pyqtSignal(str)
def __init__(self, parent=None):
super(Ui_Srid, self).__init__(parent)
self.text = ''
self.main = parent
self.setObjectName(_fromUtf8("self"))
self.setWindowModality(QtCore.Qt.WindowModal)
self.resize(781,427)
self.gridLayoutWidget = QtGui.QWidget(self)
self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 30, 761, 371))
self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setMargin(0)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.lineEdit = QtGui.QLineEdit(self.gridLayoutWidget)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
self.tableWidget = QtGui.QTableWidget(self.gridLayoutWidget)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(0)
self.tableWidget.setRowCount(0)
self.gridLayout.addWidget(self.tableWidget, 1, 1, 1, 1)
self.label = QtGui.QLabel(self.gridLayoutWidget)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.retranslateUi()
self.tableWidget.cellDoubleClicked.connect(self.returnSRID)
QtCore.QMetaObject.connectSlotsByName(self)
self.sridData() # Rempli la table
QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL(_fromUtf8("doubleClicked(QModelIndex)")), self.close)
self.lineEdit.textEdited.connect(self.on_qline_edit)
self.show()
def retranslateUi(self):
self.setWindowTitle(_translate("Srid", "Srid", None))
def sridData(self): ##REMPLISSAGE
#Remplissage avec la base de donnée
## try:
## conn = psycopg2.connect("dbname='postgis_21_sample' user='postgres' host='localhost' password='postgresql'")
## except:
## print "I am unable to connect to the database"
## cur = conn.cursor()
## self.data= cur.execute("SELECT srtext, srid_text FROM spatial_ref_sys;")
## data = cur.fetchall()
## lignes = len(data)
## columns = len(data[0])
## i = 0
## j = 0
## self.tableWidget.setRowCount(lignes)
## self.tableWidget.setColumnCount(columns)
## self.tableWidget.setHorizontalHeaderLabels(['Label sird', 'srid'])
## self.tableWidget.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch)
##
## for i in range(lignes):
## for j in range(columns):
## item = QtGui.QTableWidgetItem(data[i][j])
## self.tableWidget.setItem(i, j, item)
#Exemple
#Affichage du tableau en entier lors que rien n'est entré dans le qLineEdit
if self.lineEdit.text()=="":
lista = ['aa', 'ab', 'ac', 'ad','ae','af','ag','ah','ai','aj','ak','al' ]
listb = ['1', '2','3','4','5','6','7','8','9','10','11','12']
self.data = {'A':lista, 'B':listb}
n = 0
self.tableWidget.setRowCount(len(lista))
self.tableWidget.setColumnCount(len(self.data))
self.tableWidget.setHorizontalHeaderLabels(['Label sird', 'srid'])
self.tableWidget.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch)
for key in self.data:
m = 0
for item in self.data[key]:
self.item = QtGui.QTableWidgetItem(item)
self.tableWidget.setItem(m, n, self.item)
m += 1
n += 1
def returnSRID(self, row, col): # Apellé seulemment lorsque l'on selection une ligne
column = col or 1
srid_selected = self.tableWidget.item(row, column).text()
self.main.selected = srid_selected
def on_qline_edit(self):
self.text = self.lineEdit.text()
print 'Texte lineEdit:',self.text
#Remplissage du tableau avec les résultats de la recherche rapide
if not self.lineEdit.text()=="":
#Recherche des elements entrés dans le QlineEdit dans le QTableWidget
items = self.tableWidget.findItems(self.lineEdit.text(), QtCore.Qt.MatchContains) # Qt::MatchRegExp ou Qt::MatchWrap
if items:
#Liste les résultats trouvés
results = '\n'.join('row %d column %d' % (item.row() + 1, item.column() + 1) for item in items)
print results
#Remplie le tableau avec les résultats de la recherche
for item in items :
self.data_seach = self.tableWidget.item(item.row(), item.column()).text()
print 'data:',self.data_seach
self.tableWidget.setRowCount(len(self.data_seach))
self.tableWidget.setColumnCount(len(self.data_seach))
self.tableWidget.setHorizontalHeaderLabels(['Label sird', 'srid'])
self.tableWidget.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch)
for key in self.data:
m = 0
for item in self.data_seach[key]:
self.item = QtGui.QTableWidgetItem(item)
self.tableWidget.setItem(m, n, self.item)
m += 1
n += 1
#self.tableWidget.item(self.item.row(),self.item.column()).setBackground(QtGui.QColor(100,100,150))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QDialog()
ui = Ui_Srid()
#MainWindow.show()
sys.exit(app.exec_()) |
Partager