EcranEditionObjet.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. from __future__ import division
  4. import os, sys
  5. from PyQt4.QtCore import *
  6. from PyQt4.QtGui import *
  7. from Objet import Objet
  8. from ui.ecran_editionObjet import Ui_eo_fenetre
  9. import regles
  10. class EcranEditionObjet(QDialog):
  11. """interface de creation/edition de terrains"""
  12. def __init__(self, objet=None, parent=None):
  13. """initialisation de la fenetre"""
  14. super (EcranEditionObjet, self).__init__(parent)
  15. self._resultat = objet
  16. self.createWidgets()
  17. self.ouverture(objet)
  18. def createWidgets(self):
  19. """construction de l'interface"""
  20. #construction de l'interface
  21. self.ui = Ui_eo_fenetre()
  22. self.ui.setupUi(self)
  23. self.setModal(True)
  24. self.connect(self.ui.eo_enregistrer, SIGNAL("clicked()"), self.enregistrer)
  25. self.connect(self.ui.eo_annuler, SIGNAL("clicked()"), self.annuler)
  26. self.connect(self.ui.eo_supprimer, SIGNAL("clicked()"), self.supprimer)
  27. self.connect(self.ui.eo_ajouter, SIGNAL("clicked()"), self.ajouter)
  28. self.connect(self.ui.eo_retirer, SIGNAL("clicked()"), self.retirer)
  29. self.connect(self.ui.eo_nom, SIGNAL("textEdited(QString)"), self.majAffichage)
  30. def ouverture(self, objet):
  31. """ouverture en mode edition"""
  32. if objet:
  33. self.ui.eo_nom.majTexte(objet.nom)
  34. self.ui.eo_quantite.setValue(objet.quantite)
  35. self.ui.eo_poids.setValue(objet.poids)
  36. self.ui.eo_valeur.setValue(objet.valeur)
  37. self.ui.eo_monnaie.majTexte(regles.nomMonnaie())
  38. self.ui.eo_type.setCurrentIndex(objet.typeObjet)
  39. self.ui.eo_consommable.setChecked(objet.estConsommable)
  40. else:
  41. self.ui.eo_ajouter.setVisible(False)
  42. self.ui.eo_retirer.setVisible(False)
  43. self.ui.eo_supprimer.setVisible(False)
  44. self.majAffichage()
  45. def objet(self):
  46. objet = Objet()
  47. objet.nom = self.ui.eo_nom.texte()
  48. objet.quantite = self.ui.eo_quantite.value()
  49. objet.type = self.ui.eo_type.currentIndex()
  50. objet.estConsommable = self.ui.eo_consommable.isChecked()
  51. objet.poids = self.ui.eo_poids.value()
  52. objet.valeur = self.ui.eo_valeur.value()
  53. return objet
  54. def resultat(self):
  55. return self._resultat
  56. def enregistrer(self):
  57. """enregistre le terrain cree/edite"""
  58. self._resultat = self.objet()
  59. self.done(1)
  60. def supprimer(self):
  61. """supprimer l'enregistrement de ce terrain"""
  62. self._resultat = None
  63. self.done(1)
  64. def annuler(self):
  65. """annule la creation/edition"""
  66. self.done(0)
  67. def majAffichage(self):
  68. """verifie la validite des saisies"""
  69. self.ui.eo_enregistrer.setEnabled(len(self.ui.eo_nom.texte()) > 0)
  70. def ajouter(self):
  71. pass
  72. def retirer(self):
  73. pass
  74. if __name__ == "__main__":
  75. app = QApplication(sys.argv)
  76. ecran = EcranEditionObjet()
  77. ecran.show()
  78. r = app.exec_()
  79. exit(r)