# -*- coding: utf-8 -*- """ensemble des widgets surchargés""" from PyQt4.QtCore import * from PyQt4.QtGui import * from lib.outilsSvg import * class DmGraphicsView(QGraphicsView): """surcharge de QGraphicsView""" def __init__(self, parent = None): super(DmGraphicsView, self).__init__(parent) def resizeEvent(self, event): super(DmGraphicsView, self).resizeEvent(event) self.emit(SIGNAL("resizeEvent()")) class DmTableWidget(QTableWidget): """surcharge de QTableWidget""" def __init__(self, parent = None): super(DmTableWidget, self).__init__(parent) self.majEnCours = False def vider(self): """supprime toutes les lignes""" self.majEnCours = True while self.rowCount() > 0: self.removeRow(0) self.majEnCours = False def masquerColonneId(self): """masque la colonne en position 0 qui contient les identifiants""" self.setColumnWidth(0, 0) class DmTableBiblio(DmTableWidget): """table utilisee pour afficher les bibliotheques d'objets: terrains, decors, creatures""" def __init__(self, parent = None): super(DmTableBiblio, self).__init__(parent) self.fichier = "" self.masquerColonneId() def defFichier(self, fichier): """definit le fichier de sauvegarde qui la source des donnees de la table""" self.fichier = fichier def initAffichage(self): """fait les differents reglages relatifs a l'apparence""" self.setColumnWidth(0, 0) self.setIconSize(QSize(30,20)) self.horizontalHeader().setStretchLastSection(True) def remplir(self): """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde""" dico = afficheSvg(self.fichier) self.majEnCours = True self.setSortingEnabled(False) index = 0 for elt in dico: objet = dico[elt] self.insertRow(int(index)) #code de l'objet self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt))) #icone et nom icon = QIcon("img\\"+objet.icone()) item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom)) self.setItem(int(index),1,item) index += 1 self.sizeHintForColumn(1) self.setSortingEnabled(True) self.sortItems(1) self.majEnCours = False def maj(self): self.vider() self.remplir() def actuel(self): """renvoie l'objet actuellement selectionne""" objet = None index = self.item(self.currentRow(), 0) if index > 0: objet = charger(self.fichier, str(index.text().toUtf8())) return objet