EcranFondPlateau.py 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. """Scene affichee dans la QGraphicsView lorsqu'aucun [combat, plateau] n'est cree"""
  4. from __future__ import division
  5. from PyQt4.QtCore import *
  6. from PyQt4.QtGui import *
  7. class EcranFondPlateau(QGraphicsScene):
  8. """ecran de fond lorsqu'aucun plateau n'est cree"""
  9. def __init__(self, fenetre, parent=None):
  10. super(EcranFondPlateau, self).__init__()
  11. self.fenetre = fenetre
  12. self.setSceneRect(0, 0, 0.8*self.fenetre.ui.cbt_vue.width(), 0.8*self.fenetre.ui.cbt_vue.height())
  13. self.connect(self.fenetre.ui.cbt_vue, SIGNAL("resizeEvent()"), self.actu)
  14. self.fenetre.connect(self.fenetre.ui.cbt_vue, SIGNAL("resizeEvent()"), self.actu)
  15. self.cmdEnCours = CommandeFondPlateau(self, "creer", "img\\cmdVue_cbt.png", "Afficher le dernier combat", 10, 15, 30, 60)
  16. self.cmdEnCours.creer()
  17. self.cmdCharger = CommandeFondPlateau(self, "charger", "img\\cmdVue_ouvrir.png", "Charger un combat", 60, 15, 30, 60)
  18. self.cmdCharger.creer()
  19. self.cmdCreer = CommandeFondPlateau(self, "enCours", "img\\cmdVue_plus.png", "Créer un nouveau combat", 35, 60, 30, 60)
  20. self.cmdCreer.creer()
  21. self.setSceneRect(QRectF())
  22. self.fenetre.ui.cbt_vue.fitInView(self.sceneRect(), Qt.KeepAspectRatioByExpanding)
  23. def actu(self):
  24. self.setSceneRect(0, 0, 0.8*self.fenetre.ui.cbt_vue.width(), 0.8*self.fenetre.ui.cbt_vue.height())
  25. self.cmdEnCours.actu()
  26. self.cmdCharger.actu()
  27. self.cmdCreer.actu()
  28. def clic(self, cmdId):
  29. """on a clique sur une des commandes"""
  30. if cmdId == "creer":
  31. self.fenetre.afficherEcranCreationPlateau()
  32. elif cmdId == "charger":
  33. print "charger"
  34. elif cmdId == "enCours":
  35. print "en cours"
  36. else:
  37. print "Commande invalide"
  38. class CommandeFondPlateau(QGraphicsPixmapItem):
  39. """bouton image affiche sur l'EcranFondPlateau"""
  40. def __init__(self, ecran, cmdId, img = "", txt = "", x = 0, y = 0, h = 100, transparence = 0, parent=None):
  41. """Attention: x, y, h sont en % des dimensions de l'ecran!! et transparence est en %"""
  42. super(CommandeFondPlateau, self).__init__()
  43. self.ecran = ecran
  44. self.cmdId = cmdId
  45. self.img = img
  46. self.txt = txt
  47. self.x = x
  48. self.y = y
  49. self.h = h
  50. self.transparence = transparence
  51. self.effetBleu = QGraphicsBlurEffect()
  52. def actu(self):
  53. """ajoute une image au fond de l'ecran. """
  54. lEcran = self.ecran.width()
  55. hEcran = self.ecran.height()
  56. pix = QPixmap()
  57. pix.load(self.img)
  58. pix = pix.scaledToHeight(((self.h*hEcran)/100))
  59. self.setPixmap(pix)
  60. self.setPos(((self.x*lEcran)/100), \
  61. ((self.y*hEcran)/100) )
  62. self.setOpacity(self.transparence/100)
  63. def creer(self):
  64. self.setAcceptHoverEvents(True)
  65. self.setFlag(QGraphicsItem.ItemIsFocusable)
  66. self.actu()
  67. self.ecran.addItem(self)
  68. def mousePressEvent(self, event):
  69. """cree un plateau sur clic gauche"""
  70. self.ecran.clic(self.cmdId)
  71. def hoverEnterEvent(self, event):
  72. self.setGraphicsEffect(QGraphicsColorizeEffect ())
  73. def hoverLeaveEvent(self, event):
  74. self.setGraphicsEffect(None)