1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2017 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 from __future__ import absolute_import
23 from builtins import str
26 import types,os, locale
29 from PyQt5.QtWidgets import QLineEdit, QRadioButton
30 from PyQt5.QtCore import Qt
33 from Extensions.i18n import tr
35 from .feuille import Feuille
36 from desWidgetSimpComplexe import Ui_WidgetSimpComplexe
37 from .politiquesValidation import PolitiqueUnique
38 from .qtSaisie import SaisieValeur
41 class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
43 def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
44 Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
45 self.parentQt.commandesLayout.insertWidget(-1,self)
46 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)
52 self.maCommande.listeAffichageWidget.append(self.LEComp)
53 #self.maCommande.listeAffichageWidget.append(self.RBRI)
54 #self.maCommande.listeAffichageWidget.append(self.RBMP)
55 #self.maCommande.listeAffichageWidget.append(self.LEReel)
56 #self.maCommande.listeAffichageWidget.append(self.LEImag)
60 self.politique=PolitiqueUnique(self.node,self.editor)
61 valeur=self.node.item.getValeur()
62 if valeur == None or valeur == '' : return
63 if type(valeur) not in (list,tuple) :
64 self.LEComp.setText(str(valeur))
67 self.LEReel.setText(str(x1))
68 self.LEImag.setText(str(x2))
70 self.RBRI.setChecked(1)
72 self.RBMP.setChecked(1)
74 def LECompRPressed(self) :
77 commentaire=tr("expression valide")
78 valeur = str(self.LEComp.text())
83 commentaire=tr("expression invalide")
84 self.editor.afficheInfos(commentaire,Qt.red)
88 self.editor.afficheInfos(commentaire)
91 commentaire=tr("l expression n est pas de la forme a+bj")
92 self.editor.afficheInfos(commentaire,Qt.red)
94 def LEReelRPressed(self):
96 commentaire=tr("expression valide")
97 valeur = str(self.LEReel.text())
100 self.editor.afficheInfos(commentaire)
102 commentaire=tr("expression invalide")
103 self.editor.afficheInfos(commentaire,Qt.red)
104 if self.LEImag.text()!="" : self.valeurPressed()
106 def LEImagRPressed(self):
108 commentaire=tr("expression valide")
109 valeur = str(self.LEImag.text())
111 a=locale.atof(valeur)
112 self.editor.afficheInfos(commentaire)
114 commentaire=tr("expression invalide")
115 self.editor.afficheInfos(commentaire,Qt.red)
116 if self.LEReel.text()!="" : self.valeurPressed()
118 def finCommentaire(self):
119 commentaire="valeur de type complexe"
122 def getValeurComp(self):
123 commentaire=tr("expression valide")
124 valeur = str(self.LEComp.text())
129 commentaire=tr("expression invalide")
130 self.editor.afficheInfos(commentaire,Qt.red)
135 commentaire=tr("expression n est pas de la forme a+bj")
136 self.editor.afficheInfos(commentaire,Qt.red)
141 def valeurPressed(self):
142 if self.LEComp.text()== "" and (self.LEReel.text()=="" or self.LEImag.text()=="") :
144 if self.LEComp.text()== "" : valeur = self.getValeurRI()
146 if self.LEReel.text() != "" or self.LEImag.text() != "" :
147 commentaire=tr("entrer une seule valeur SVP")
148 self.editor.afficheInfos(commentaire,Qt.red)
150 valeur= self.getValeurComp()
151 self.politique.recordValeur(valeur)
153 self.parentQt.donneFocus()
155 def getValeurRI(self):
157 Retourne le complexe saisi par l'utilisateur
160 if (self.RBMP.isChecked() == 1 ) :
162 elif (self.RBRI.isChecked() == 1) :
165 commentaire=tr("saisir le type de complexe")
166 self.editor.afficheInfos(commentaire,Qt.red)
169 l.append(locale.atof(str(self.LEReel.text())))
170 l.append(locale.atof(str(self.LEImag.text())))
173 return repr(tuple(l))