EcranCreerPlateau.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. from __future__ import division
  4. from time import time, sleep, strftime, localtime
  5. from PyQt4.QtCore import *
  6. from PyQt4.QtGui import *
  7. from ui.ecran_creerPlateau import Ui_crp_fenetre
  8. from outilsSvg import *
  9. class EcranCreerPlateau(QDialog):
  10. """interface de creation/chargement de plateau"""
  11. def __init__(self, fenetrePrincipale, terrain=None, parent=None):
  12. """initialisation de la fenetre"""
  13. super (EcranCreerPlateau, self).__init__()
  14. self.fenetre = fenetrePrincipale
  15. self.couleur = QColor(0, 255, 0, 80)
  16. self._majEnCours = False
  17. self.createWidgets()
  18. self.majAffichage()
  19. def createWidgets(self):
  20. """construction de l'interface"""
  21. #construction de l'interface
  22. self.ui = Ui_crp_fenetre()
  23. self.ui.setupUi(self)
  24. self.ui.crp_couleur.setStyleSheet("QLabel {backGround:%s}" %(self.couleur))
  25. self.connect(self.ui.crp_couleur, SIGNAL("clicked()"), self.selectionCouleur)
  26. self.connect(self.ui.crp_listeDimensions, SIGNAL("activated(int)"), self.majDimensions)
  27. self.connect(self.ui.crp_largeur, SIGNAL("valueChanged(int)"), self.majListeDimensions)
  28. self.connect(self.ui.crp_hauteur, SIGNAL("valueChanged(int)"), self.majListeDimensions)
  29. self.connect(self.ui.crp_nom, SIGNAL("textEdited(QString)"), self.majAffichage)
  30. self.connect(self.ui.crp_ok, SIGNAL("clicked()"), self.creer)
  31. self.ui.crp_ok.setShortcut("Enter")
  32. def creer(self):
  33. nom = self.ui.crp_nom.texte()
  34. largeur = self.ui.crp_largeur.value()
  35. hauteur = self.ui.crp_hauteur.value()
  36. chapitre = str(self.ui.crp_chapitre.value())
  37. if self.ui.crp_formeHexa.isChecked():
  38. formeCases = "H"
  39. else:
  40. formeCases = "C"
  41. ok = True
  42. if (largeur * hauteur) > 10000:
  43. reponse = QMessageBox.question(self, 'Message',
  44. "Attention ! \nLe nombre élevé de cases peut entrainer des ralentissements " \
  45. "importants...\nVoulez vous continuer?", QMessageBox.Yes |
  46. QMessageBox.No, QMessageBox.No)
  47. ok = (reponse != QMessageBox.No)
  48. if ok == True:
  49. self.fenetre.creerPlateau(nom, chapitre, formeCases, largeur, hauteur, self.couleur)
  50. self.close()
  51. def majAffichage(self):
  52. self.ui.crp_ok.setEnabled(len(self.ui.crp_nom.texte()) > 0)
  53. def selectionCouleur(self):
  54. """selectionne la couleur dans la boite de dialogue dediee"""
  55. couleur = QColorDialog(self).getColor(QColor("white"), self)
  56. if couleur.isValid():
  57. nomCouleur = couleur.name()
  58. self.ui.crp_couleur.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur))
  59. self.couleur = couleur
  60. def majDimensions(self, index):
  61. if not self._majEnCours:
  62. dimensionsRapides = [(30,20), (50,30), (100,70), \
  63. (20,30), (30,50), (70,100), \
  64. (25, 25), (40, 40), (80, 80), \
  65. (1,1) ]
  66. largeur, hauteur = dimensionsRapides[index]
  67. self._majEnCours = True
  68. self.ui.crp_largeur.setValue(largeur)
  69. self.ui.crp_hauteur.setValue(hauteur)
  70. self._majEnCours = False
  71. def majListeDimensions(self):
  72. """l'utilisateur a modifie une dimension,
  73. la liste affiche 'personnalise'"""
  74. if not self._majEnCours:
  75. self._majEnCours = True
  76. self.ui.crp_listeDimensions.setCurrentIndex(9)
  77. self._majEnCours = False