dm.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. """ensemble des widgets surchargés"""
  4. from PyQt4.QtCore import *
  5. from PyQt4.QtGui import *
  6. from lib.outilsSvg import *
  7. class DmLabel(QLabel):
  8. """surcharge de QLabel"""
  9. def __init__(self, parent = None):
  10. super(DmLabel, self).__init__(parent)
  11. def majTexte(self, txt):
  12. self.clear()
  13. self.setText(QString.fromUtf8(txt))
  14. def chargerImage(self, chemin):
  15. self.clear()
  16. if len(chemin) > 0:
  17. pix = QPixmap(QString.fromUtf8(chemin))
  18. pix = pix.scaled(self.width(), self.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
  19. else:
  20. pix = QPixmap()
  21. self.setPixmap(pix)
  22. def texte(self):
  23. return str(self.text())
  24. class DmTextEdit(QTextEdit):
  25. def __init__(self, parent = None):
  26. super(DmTextEdit, self).__init__(parent)
  27. def majTexte(self, txt):
  28. self.clear()
  29. self.setText(QString.fromUtf8(txt))
  30. def texte(self):
  31. return str(self.text())
  32. class DmGraphicsView(QGraphicsView):
  33. """surcharge de QGraphicsView"""
  34. def __init__(self, parent = None):
  35. super(DmGraphicsView, self).__init__(parent)
  36. def resizeEvent(self, event):
  37. super(DmGraphicsView, self).resizeEvent(event)
  38. self.emit(SIGNAL("resizeEvent()"))
  39. class DmTableWidget(QTableWidget):
  40. """surcharge de QTableWidget"""
  41. def __init__(self, parent = None):
  42. super(DmTableWidget, self).__init__(parent)
  43. self.majEnCours = False
  44. def vider(self):
  45. """supprime toutes les lignes"""
  46. self.majEnCours = True
  47. while self.rowCount() > 0:
  48. self.removeRow(0)
  49. self.majEnCours = False
  50. def masquerColonneId(self):
  51. """masque la colonne en position 0 qui contient les identifiants"""
  52. self.setColumnWidth(0, 0)
  53. class DmTableBiblio(DmTableWidget):
  54. """table utilisee pour afficher les bibliotheques d'objets:
  55. terrains, decors, creatures"""
  56. def __init__(self, parent = None):
  57. super(DmTableBiblio, self).__init__(parent)
  58. self.fichier = ""
  59. self.masquerColonneId()
  60. def defFichier(self, fichier):
  61. """definit le fichier de sauvegarde qui la source des donnees de la table"""
  62. self.fichier = fichier
  63. def initAffichage(self):
  64. """fait les differents reglages relatifs a l'apparence"""
  65. self.setColumnWidth(0, 0)
  66. self.setIconSize(QSize(30,20))
  67. self.horizontalHeader().setStretchLastSection(True)
  68. def remplir(self):
  69. """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
  70. dico = afficheSvg(self.fichier)
  71. self.majEnCours = True
  72. self.setSortingEnabled(False)
  73. index = 0
  74. for elt in dico:
  75. objet = dico[elt]
  76. self.insertRow(int(index))
  77. #code de l'objet
  78. self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
  79. #icone et nom
  80. icon = QIcon("img\\"+objet.icone())
  81. item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
  82. self.setItem(int(index),1,item)
  83. index += 1
  84. self.sizeHintForColumn(1)
  85. self.setSortingEnabled(True)
  86. self.sortItems(1)
  87. self.majEnCours = False
  88. def maj(self):
  89. self.vider()
  90. self.remplir()
  91. def actuel(self):
  92. """renvoie l'objet actuellement selectionne"""
  93. objet = None
  94. index = self.item(self.currentRow(), 0)
  95. if index > 0:
  96. objet = charger(self.fichier, str(index.text().toUtf8()))
  97. return objet
  98. class DmTableAttributsPi(DmTableWidget):
  99. """table utilisee pour afficher les attributs d'un pion dans le panneau Pi"""
  100. def __init__(self, parent = None):
  101. super(DmTableBiblio, self).__init__(parent)
  102. self.fichier = ""
  103. self.masquerColonneId()
  104. def defFichier(self, fichier):
  105. """definit le fichier de sauvegarde qui la source des donnees de la table"""
  106. self.fichier = fichier
  107. def initAffichage(self):
  108. """fait les differents reglages relatifs a l'apparence"""
  109. self.setColumnWidth(0, 0)
  110. self.setIconSize(QSize(30,20))
  111. self.horizontalHeader().setStretchLastSection(True)
  112. def remplir(self):
  113. """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
  114. dico = afficheSvg(self.fichier)
  115. self.majEnCours = True
  116. self.setSortingEnabled(False)
  117. index = 0
  118. for elt in dico:
  119. objet = dico[elt]
  120. self.insertRow(int(index))
  121. #code de l'objet
  122. self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
  123. #icone et nom
  124. icon = QIcon("img\\"+objet.icone())
  125. item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
  126. self.setItem(int(index),1,item)
  127. index += 1
  128. self.sizeHintForColumn(1)
  129. self.setSortingEnabled(True)
  130. self.sortItems(1)
  131. self.majEnCours = False
  132. def maj(self):
  133. self.vider()
  134. self.remplir()
  135. def actuel(self):
  136. """renvoie l'objet actuellement selectionne"""
  137. objet = None
  138. index = self.item(self.currentRow(), 0)
  139. if index > 0:
  140. objet = charger(self.fichier, str(index.text().toUtf8()))
  141. return objet