| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- from __future__ import division
- import os, sys
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from Objet import Objet
- from ui.ecran_editionObjet import Ui_eo_fenetre
- from ui.ecran_editionQuantiteObjet import Ui_eoq_fenetre
- import regles
- class EcranEditionObjet(QDialog):
- """interface de creation/edition de terrains"""
- def __init__(self, objet=None, typeObjet = 4, parent=None):
- """initialisation de la fenetre"""
- super (EcranEditionObjet, self).__init__(parent)
- self._resultat = objet
- self.createWidgets()
- self.ouverture(objet, typeObjet)
-
- def createWidgets(self):
- """construction de l'interface"""
- #construction de l'interface
- self.ui = Ui_eo_fenetre()
- self.ui.setupUi(self)
- self.setModal(True)
- self.connect(self.ui.eo_enregistrer, SIGNAL("clicked()"), self.enregistrer)
- self.connect(self.ui.eo_annuler, SIGNAL("clicked()"), self.annuler)
- self.connect(self.ui.eo_supprimer, SIGNAL("clicked()"), self.supprimer)
- self.connect(self.ui.eo_ajouter, SIGNAL("clicked()"), self.ajouter)
- self.connect(self.ui.eo_retirer, SIGNAL("clicked()"), self.retirer)
- self.connect(self.ui.eo_nom, SIGNAL("textEdited(QString)"), self.majAffichage)
-
- def ouverture(self, objet, typeObjet):
- """ouverture en mode edition"""
- if objet:
- self.ui.eo_nom.majTexte(objet.nom)
- self.ui.eo_quantite.setValue(objet.quantite)
- self.ui.eo_poids.setValue(objet.poids)
- self.ui.eo_valeur.setValue(objet.valeur)
- self.ui.eo_monnaie.majTexte(regles.nomMonnaie())
- self.ui.eo_type.setCurrentIndex(objet.typeObjet)
- self.ui.eo_consommable.setChecked(objet.estConsommable)
- else:
- self.ui.eo_type.setCurrentIndex(typeObjet)
- self.ui.eo_ajouter.setVisible(False)
- self.ui.eo_retirer.setVisible(False)
- self.ui.eo_supprimer.setVisible(False)
- self.majAffichage()
- def objet(self):
- objet = Objet()
- objet.nom = self.ui.eo_nom.texte()
- objet.quantite = self.ui.eo_quantite.value()
- objet.typeObjet = self.ui.eo_type.currentIndex()
- objet.estConsommable = self.ui.eo_consommable.isChecked()
- objet.poids = self.ui.eo_poids.value()
- objet.valeur = self.ui.eo_valeur.value()
- return objet
- def resultat(self):
- return self._resultat
- def enregistrer(self):
- """enregistre le terrain cree/edite"""
- self._resultat = self.objet()
- self.done(1)
- def supprimer(self):
- """supprimer l'enregistrement de ce terrain"""
- self._resultat = None
- self.done(1)
- def annuler(self):
- """annule la creation/edition"""
- self.done(0)
- def majAffichage(self):
- """verifie la validite des saisies"""
- self.ui.eo_enregistrer.setEnabled(len(self.ui.eo_nom.texte()) > 0)
- def ajouter(self):
- self.editerQuantite("+")
-
- def retirer(self):
- self.editerQuantite("-")
- def editerQuantite(self, mode):
- self.ecran = EcranEditionQuantiteObjet(mode)
- self.ecran.show()
- self.ecran.exec_()
- resultat = self.ecran.resultat
- self.ecran = None
- val = self.ui.eo_quantite.value()
- val += resultat
- if val < 0: val = 0
- self.ui.eo_quantite.setValue(val)
- class EcranEditionQuantiteObjet(QDialog):
- """interface permettant l'ajout/retrait rapide de nombres a une quantites d'objets"""
- def __init__(self, mode = "+", parent=None):
- super (EcranEditionQuantiteObjet, self).__init__(parent)
- self.mode = mode
- self.resultat = 0
- self.createWidgets()
- def createWidgets(self):
- """construction de l'interface"""
- #construction de l'interface
- self.ui = Ui_eoq_fenetre()
- self.ui.setupUi(self)
- self.setModal(True)
- self.connect(self.ui.eoq_ok, SIGNAL("clicked()"), self.ok)
- if self.mode == "+": self.ui.eoq_titre.majTexte("Ajouter :")
- if self.mode == "-": self.ui.eoq_titre.majTexte("Retirer :")
- self.ui.eoq_valeur.setFocus()
- self.ui.eoq_valeur.selectAll()
-
- def ok(self):
- k = 1
- if self.mode == "-": k = -1
- self.resultat = (k * self.ui.eoq_valeur.value())
- self.done(1)
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- ecran = EcranEditionObjet()
- ecran.show()
- r = app.exec_()
- exit(r)
-
|