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
| # -*- coding: cp1252 -*-
from PyQt4.QtCore import SIGNAL, SLOT, Qt, QEvent
from PyQt4.QtGui import QApplication, QWidget, QLineEdit, QPushButton, QHBoxLayout, QTableWidget,QTableWidgetItem, QLabel, QAbstractItemView
import sys
class Form(QWidget):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.Layout=QHBoxLayout(self)
self.Table=QTableWidget(self)
self.Table.focusInEvent=self.focusInEvent
self.Table.focusOutEvent=self.focusOutEvent
# self.Table.setFocus()
# self.tablefocus=True
# self.Table.setCurrentCell(0,0)
self.remplirTable()
self.Boutton=QPushButton("Ajouter une notification")
self.Boutton.connect(self.Boutton, SIGNAL("clicked()"), self.slotAction)
self.Boutton2=QPushButton("Supprimer une notification")
self.Boutton2.setEnabled(False)
self.Boutton2.connect(self.Boutton2, SIGNAL("clicked()"), self.slotAction2)
self.LineEdit=QLineEdit()
self.LineEdit2=QLineEdit()
self.Layout.addWidget(self.Table)
self.Layout.addWidget(self.Boutton)
self.Layout.addWidget(self.Boutton2)
self.Layout.addWidget(self.LineEdit)
self.Layout.addWidget(self.LineEdit2)
def remplirTable(self):
self.Table.clear()
self.Table.setRowCount(len(Liste))
self.Table.setColumnCount(3)
self.Table.setAlternatingRowColors(True)
self.Table.setHorizontalHeaderLabels(["Num", "Date", "Destinataire"])
self.Table.verticalHeader().hide()
self.Table.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.Table.setSelectionMode(QAbstractItemView.SingleSelection)
self.Table.setSelectionBehavior(QAbstractItemView.SelectRows)
for r,row in enumerate(Liste):
for c,column in enumerate(row):
self.Item=QTableWidgetItem(column)
self.Table.setItem(r,c,self.Item)
self.Table.resizeColumnsToContents()
def slotAction(self):
self.notif=Notif()
self.notif.show()
def slotAction2(self):
self.Table.setCurrentCell(self.Table.currentRow(),0)
Suppr=self.Table.currentItem().text()
for i,n in enumerate(Liste):
if Liste[i][0]==Suppr:
Liste.pop(i)
self.remplirTable()
def focusInEvent(self,event):
if self.Table.hasFocus():
print u"la table prend le focus"
self.tablefocus=True
self.Boutton2.setEnabled(True)
event.accept()
# else:
# QWidget.focusInEvent(self,event)
def focusOutEvent(self,event):
if self.tablefocus:
print u"la table perd le focus"
self.tablefocus=False
self.Boutton2.setEnabled(False)
event.accept()
# else:
# QWidget.focusOutEvent(self,event)
class Notif(QWidget):
def __init__(self, parent=None):
super(Notif, self).__init__(parent)
self.NotifLayout=QHBoxLayout(self)
self.labelNotif1=QLabel(self)
self.labelNotif1.setText("Date :")
self.lineEdit_Notif1=QLineEdit(self)
self.labelNotif2=QLabel(self)
self.labelNotif2.setText("Destinataire :")
self.lineEdit_Notif2=QLineEdit(self)
self.BouttonNotif=QPushButton("Ok")
self.BouttonNotif.connect(self.BouttonNotif, SIGNAL("clicked()"),self.slotAction)
self.NotifLayout.addWidget(self.labelNotif1)
self.NotifLayout.addWidget(self.lineEdit_Notif1)
self.NotifLayout.addWidget(self.labelNotif2)
self.NotifLayout.addWidget(self.lineEdit_Notif2)
self.NotifLayout.addWidget(self.BouttonNotif)
def slotAction(self):
self.Date=self.lineEdit_Notif1.text()
self.Destinataire=self.lineEdit_Notif2.text()
self.ListeID=[]
try:
for n in Liste:
self.ListeID.append(int(n[0]))
self.maxListeID=max(self.ListeID)+1
except:
self.maxListeID=1
Liste.append([unicode(self.maxListeID),self.Date,self.Destinataire])
form.remplirTable()
form.notif.close()
if __name__== "__main__" :
App=QApplication(sys.argv)
Liste=[["1","2013-01-07","M. Prout"],["2","2012-12-05","Mme Prout"],["3","2012-10-12","Mr Caca"]]
form=Form()
form.show()
App.exec_() |
Partager