1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 import string,types,os
25 from PyQt5.QtWidgets import QLineEdit, QRadioButton
26 from PyQt5.QtCore import Qt
28 from PyQt4.QtGui import *
29 from PyQt4.QtCore import *
32 from Extensions.i18n import tr
34 from feuille import Feuille
35 from desWidgetSimpComplexe import Ui_WidgetSimpComplexe
36 from politiquesValidation import PolitiqueUnique
37 from qtSaisie import SaisieValeur
40 class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
42 def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
43 Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
44 self.parentQt.commandesLayout.insertWidget(-1,self)
45 self.setFocusPolicy(Qt.StrongFocus)
47 self.LEImag.returnPressed.connect(self.LEImagRPressed)
48 self.LEReel.returnPressed.connect()"),self.LEReelRPressed)
49 self.RBRI.clicked.connect(self.ValeurPressed )
50 self.RBMP.clicked.connect(self.ValeurPressed )
51 self.LEComp.returnPressed.connect(self.LECompRPressed)
53 self.connect(self.LEImag,SIGNAL("returnPressed()"),self.LEImagRPressed)
54 self.connect(self.LEReel,SIGNAL("returnPressed()"),self.LEReelRPressed)
55 self.connect(self.RBRI,SIGNAL("clicked()"), self.ValeurPressed )
56 self.connect(self.RBMP,SIGNAL("clicked()"), self.ValeurPressed )
57 self.connect(self.LEComp,SIGNAL("returnPressed()"),self.LECompRPressed)
58 self.maCommande.listeAffichageWidget.append(self.LEComp)
59 #self.maCommande.listeAffichageWidget.append(self.RBRI)
60 #self.maCommande.listeAffichageWidget.append(self.RBMP)
61 #self.maCommande.listeAffichageWidget.append(self.LEReel)
62 #self.maCommande.listeAffichageWidget.append(self.LEImag)
66 self.politique=PolitiqueUnique(self.node,self.editor)
67 valeur=self.node.item.get_valeur()
68 if valeur == None or valeur == '' : return
69 if type(valeur) not in (types.ListType,types.TupleType) :
70 self.LEComp.setText(str(valeur))
73 self.LEReel.setText(str(x1))
74 self.LEImag.setText(str(x2))
76 self.RBRI.setChecked(1)
78 self.RBMP.setChecked(1)
80 def LECompRPressed(self) :
83 commentaire=tr("expression valide")
84 valeur = str(self.LEComp.text())
89 commentaire=tr("expression invalide")
90 self.editor.affiche_infos(commentaire,Qt.red)
94 self.editor.affiche_infos(commentaire)
97 commentaire=tr("l expression n est pas de la forme a+bj")
98 self.editor.affiche_infos(commentaire,Qt.red)
100 def LEReelRPressed(self):
102 commentaire=tr("expression valide")
103 valeur = str(self.LEReel.text())
105 a=string.atof(valeur)
106 self.editor.affiche_infos(commentaire)
108 commentaire=tr("expression invalide")
109 self.editor.affiche_infos(commentaire,Qt.red)
110 if self.LEImag.text()!="" : self.ValeurPressed()
112 def LEImagRPressed(self):
114 commentaire=tr("expression valide")
115 valeur = str(self.LEImag.text())
117 a=string.atof(valeur)
118 self.editor.affiche_infos(commentaire)
120 commentaire=tr("expression invalide")
121 self.editor.affiche_infos(commentaire,Qt.red)
122 if self.LEReel.text()!="" : self.ValeurPressed()
124 def finCommentaire(self):
125 commentaire="valeur de type complexe"
128 def getValeurComp(self):
129 commentaire=tr("expression valide")
130 valeur = str(self.LEComp.text())
135 commentaire=tr("expression invalide")
136 self.editor.affiche_infos(commentaire,Qt.red)
141 commentaire=tr("expression n est pas de la forme a+bj")
142 self.editor.affiche_infos(commentaire,Qt.red)
147 def ValeurPressed(self):
148 if self.LEComp.text()== "" and (self.LEReel.text()=="" or self.LEImag.text()=="") :
150 if self.LEComp.text()== "" : valeur = self.getValeurRI()
152 if self.LEReel.text() != "" or self.LEImag.text() != "" :
153 commentaire=tr("entrer une seule valeur SVP")
154 self.editor.affiche_infos(commentaire,Qt.red)
156 valeur= self.getValeurComp()
157 self.politique.RecordValeur(valeur)
159 self.parentQt.donneFocus()
161 def getValeurRI(self):
163 Retourne le complexe saisi par l'utilisateur
166 if (self.RBMP.isChecked() == 1 ) :
168 elif (self.RBRI.isChecked() == 1) :
171 commentaire=tr("saisir le type de complexe")
172 self.editor.affiche_infos(commentaire,Qt.red)
175 l.append(string.atof(str(self.LEReel.text())))
176 l.append(string.atof(str(self.LEImag.text())))