dm.py 2.8 KB

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