dm.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # -*- coding: utf-8 -*-
  2. """ensemble des widgets surchargés"""
  3. from PyQt4.QtCore import *
  4. from PyQt4.QtGui import *
  5. class DmGraphicsView(QGraphicsView):
  6. """surcharge de QGraphicsView"""
  7. def __init__(self, parent = None):
  8. super(DmGraphicsView, self).__init__(parent)
  9. def resizeEvent(self, event):
  10. super(DmGraphicsView, self).resizeEvent(event)
  11. self.emit(SIGNAL("resizeEvent()"))
  12. class DmTableWidget(QTableWidget):
  13. """surcharge de QTableWidget"""
  14. def __init__(self, parent = None):
  15. super(DmTableWidget, self).__init__(parent)
  16. self.majEnCours = False
  17. def vider(self):
  18. """supprime toutes les lignes"""
  19. self.majEnCours = True
  20. while self.rowCount() > 0:
  21. self.removeRow(0)
  22. self.majEnCours = False
  23. def masquerColonneId(self):
  24. """masque la colonne en position 0 qui contient les identifiants"""
  25. self.fenetre.ui.cp_listeTerrains.hideColumn(0)
  26. class DmTableBiblio(DmTableWidget):
  27. """table utilisee pour afficher les bibliotheques d'objets:
  28. terrains, decors, creatures"""
  29. def __init__(self, fichier, parent = None):
  30. """prend en parametre le fichier de sauvegarde contenant les objets"""
  31. super(DmTableBiblio, self).__init__(parent)
  32. self.fichier = fichier
  33. self.masquerColonneId()
  34. def remplir(self):
  35. """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
  36. dico = afficheSvg(self.fichier)
  37. self.majEnCours = True
  38. self.setSortingEnabled(False)
  39. for elt in dico:
  40. objet = dico[elt]
  41. self.insertRow(int(index))
  42. #code de l'objet
  43. self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
  44. #icone et nom
  45. icon = QIcon("img\\"+objet.logo())
  46. item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
  47. self.setItem(int(index),1,item)
  48. index += 1
  49. self.setIconSize(QSize(30,20))
  50. self.sizeHintForColumn(1)
  51. self.setSortingEnabled(True)
  52. self.sortItems(1)
  53. self.majEnCours = False
  54. def maj(self):
  55. self.vider()
  56. self.remplir()
  57. def actuel(self):
  58. """renvoie l'objet actuellement selectionne"""
  59. objet = None
  60. index = self.item(self.currentRow(), 0)
  61. if index > 0:
  62. objet = charger(self.fichier, str(index.text().toUtf8()))
  63. return objet