Cache.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. from __future__ import division
  4. from PyQt4.QtCore import *
  5. from PyQt4.QtGui import *
  6. class Cache(QGraphicsPolygonItem):
  7. """cache place sur le plateau"""
  8. def __init__(self, plateau, numCache = 0, parent=None):
  9. """initialisation de la fenetre"""
  10. super (Cache, self).__init__()
  11. self.parent = plateau
  12. self.plateau = plateau
  13. self.numCache = numCache
  14. self.transparence = 130
  15. self.setVisible(False)
  16. self.plateau.addItem(self)
  17. self.setFlag(QGraphicsItem.ItemIsFocusable)
  18. self.setAcceptHoverEvents(True)
  19. def afficher(self, actif, listeCases = []):
  20. """affiche le cache sur la liste des cases en parametre"""
  21. """met a jour l'affichage des cases selon les parametres enregistres pour le cache"""
  22. if actif and len(listeCases) > 0:
  23. if not self.isVisible():
  24. self.setPolygon(self.plateau.polygoneAgglo(listeCases))
  25. self.setBrush(QColor(0,0,0,130))
  26. pinceau = QPen(QColor("black"))
  27. pinceau.setWidth(10)
  28. self.setPen(pinceau)
  29. text = QGraphicsTextItem(QString.fromUtf8(str(self.numCache)))
  30. pos = self.plateau.cases[self.plateau.coordCentreListeCases(listeCases)].centreGraphique
  31. text.setPos(self.mapFromScene(pos))
  32. police = QFont("Arial",30)
  33. police.setBold(True)
  34. text.setFont(police)
  35. text.setDefaultTextColor(QColor(50,50,50,180))
  36. text.setParentItem(self)
  37. self.setVisible(actif and len(listeCases) > 0)
  38. def mousePressEvent(self, event):
  39. event.accept()
  40. def mouseReleaseEvent(self, event):
  41. event.accept()
  42. def mouseMoveEvent(self, event):
  43. event.accept()
  44. def mouseDoubleClickEvent(self, event):
  45. event.accept()
  46. def hoverEnterEvent(self, event):
  47. event.accept()
  48. def hoverLeaveEvent(self, event):
  49. event.accept()
  50. def hoverMoveEvent(self, event):
  51. event.accept()