#from __future__ import unicode_literals # -*- coding: utf-8 -*- from __future__ import division import sys from PyQt4.QtCore import SIGNAL, QString from PyQt4.QtGui import QDialog, QColorDialog, QColor, QApplication from Terrain import Terrain import rsc from ui.ecran_editionTerrain import Ui_et_fenetre class EcranEditionTerrain(QDialog): """interface de creation/edition de terrains""" def __init__(self, terrain = None, parent=None): """initialisation de la fenetre""" super (EcranEditionTerrain, self).__init__() self.createWidgets() self.terrain = Terrain() if not terrain else terrain if terrain: self.accesEdition() self.majAffichage() def createWidgets(self): """construction de l'interface""" #construction de l'interface self.ui = Ui_et_fenetre() self.ui.setupUi(self) self.connect(self.ui.et_enregistrer, SIGNAL("clicked()"), self.enregistrer) self.connect(self.ui.et_annuler, SIGNAL("clicked()"), self.annuler) self.connect(self.ui.et_nom, SIGNAL("textEdited(QString)"), self.majAffichage) self.connect(self.ui.et_apercu, SIGNAL("clicked()"), self.selectionCouleur) def mat(self): """retourne le materiel de la fenetre""" return self.terrain def accesEdition(self): """ouverture en mode edition""" self.ui.et_nom.majTexte(self.terrain.nom()) # if self.terrain.imgTexture.estValide(): # self.ui.et_apercu.chargerImage(self.terrain.imgTexture) # else: if self.terrain.couleur.isValid(): self.ui.et_apercu.setText(QString("")) self.ui.et_apercu.setStyleSheet("QLabel {backGround:%s}" %(self.terrain.couleur.name())) if self.terrain.nage: self.ui.et_depNage.setChecked(True) elif not self.terrain.franchissable: self.ui.et_depAucun.setChecked(True) self.ui.et_paroi.setChecked(self.terrain.hPlafond) def majAffichage(self): """verifie la validite des saisies""" self.ui.et_enregistrer.setEnabled(len(self.ui.et_nom.texte()) > 0) def selectionCouleur(self): """selectionne la couleur dans la boite de dialogue dediee""" couleur = QColorDialog(self).getColor(QColor("white"), self) if couleur.isValid(): nomCouleur = couleur.name() self.ui.et_apercu.setText(QString("")) self.ui.et_apercu.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur)) self.terrain.couleur = couleur # def selectionFichier(self): # """selectionne le fichier de texture dans la boite de dialogue dediee""" # img = rsc.selectionImage() # if img: # self.ui.et_apercu.chargerImage(img) def enregistrer(self): """enregistre le terrain cree/edite""" self.terrain.majNom(self.ui.et_nom.texte()) # if self.ui.et_apercu.image(): # self.terrain.imgTexture = self.ui.et_apercu.image() self.terrain.franchissable = (not self.ui.et_depAucun.isChecked()) self.terrain.nage = self.ui.et_depNage.isChecked() self.terrain.hPlafond = self.ui.et_paroi.isChecked() self.done(1) def annuler(self): """annule la creation/edition""" self.terrain = None self.done(0) if __name__ == "__main__": app = QApplication(sys.argv) ecran = EcranEditionTerrain() ecran.show() r = app.exec_() exit(r)