From: pascale.noyret Date: Thu, 30 Jul 2015 11:45:17 +0000 (+0200) Subject: Tuple X-Git-Tag: PSEN_V1~7 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=80eb29926b88137b9f0f19175c0d0c52d7dcc206;p=tools%2Feficas.git Tuple --- diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index c82c28d4..173cc96e 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -228,9 +228,9 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): if self.item.object.definition.type[0].ntuple == 2: from monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2 widget=MonWidgetPlusieursTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande) - # elif self.item.object.definition.type[0].ntuple == 3 : - # from monWidgetSimpTuple3 import MonWidgetSimpTuple3 - # widget=MonWidgetSimpTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.object.definition.type[0].ntuple == 3 : + from monWidgetPlusieursTuple3 import MonWidgetPlusieursTuple3 + widget=MonWidgetPlusieursTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : print "Pas de Tuple de longueur > 3" print "Prevenir la maintenance " diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py old mode 100644 new mode 100755 index 9c1a7dbd..20805584 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2015 EDF R&D +# Copyright (C) 2007-2013 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -24,6 +24,7 @@ from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * import time +import pdb from datetime import date from Extensions.i18n import tr @@ -35,8 +36,8 @@ from Editeur import session from Editeur import comploader from Editeur import Objecttreeitem from desBaseWidget import Ui_baseWidget -from monViewTexte import ViewText -from monWidgetCreeParam import MonWidgetCreeParam +from monViewTexte import ViewText +from monWidgetCreeParam import MonWidgetCreeParam import browser import readercata @@ -65,9 +66,9 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): self.vm = vm self.fichier = fichier self.jdc = jdc - self.first = True + self.first = True self.QWParent = QWParent - + if appli != None : self.salome = self.appliEficas.salome else : @@ -79,7 +80,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande self.affiche=self.appliEficas.CONFIGURATION.affiche if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False - if self.code in ['MAP',] : + if self.code in ['MAP',] : self.widgetTree.close() self.widgetTree=None self.appliEficas.resize(1440,self.appliEficas.height()) @@ -96,6 +97,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): if self.readercata.fic_cata == None : return #Sortie Salome self.titre=self.readercata.titre self.Ordre_Des_Commandes=self.readercata.Ordre_Des_Commandes + self.Classement_Commandes_Ds_Arbre=self.readercata.Classement_Commandes_Ds_Arbre self.format = self.appliEficas.format_fichier @@ -191,7 +193,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc ) if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False): self.viewJdcRapport() - + # if self.code=="TELEMAC" : print "kkkkkkkk" @@ -199,6 +201,28 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): self.tree = browser.JDCTree( jdc_item, self ) self.appliEficas.construitMenu() + #-------------------# + def runPSEN(self): + #-------------------# + if self.modified or self.fichier==None : + QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution ")) + return + + #lancement avec le .bat + textePython="PSEN_Path='EficasV2\PSEN_Eficas\PSEN\PSSEWrapper.py'\ + \nimport subprocess\ + \np=subprocess.Popen(['python',PSEN_Path])\ + \n(out,err)=p.communicate()" + + #lancement avec qteficas_psen.py + + #textePython='C:\Users\plscist\Desktop\Vico\sauveEficasPSEN~\EficasV1\PSEN_Eficas\PSEN\PSSEWrapper.py' + try : + self._viewTextExecute( textePython,"psen_run",".py") + except Exception, e: + print traceback.print_exc() + + #--------------------------------# def _newJDC( self ,units = None): #--------------------------------# @@ -213,7 +237,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): if self.code == "ZCRACKS" : texte=self._newZCRACKS() if self.code == "TELEMAC" : texte=self._newTELEMAC() # texte=self.newTexteCND - + jdc=self.readercata.cata[0].JdC( procedure =texte, appli=self, cata=self.readercata.cata, @@ -371,7 +395,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): f.close() self.connect(self.monExe, SIGNAL("readyReadStandardOutput()"), self.readFromStdOut ) self.connect(self.monExe, SIGNAL("readyReadStandardError()"), self.readFromStdErr ) - exe='sh ' + nomFichier + exe='sh /tmp/test.sh' self.monExe.start(exe) self.monExe.closeWriteChannel() self.w.exec_() @@ -389,7 +413,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): def readFromStdOut(self) : a=self.monExe.readAllStandardOutput() self.w.view.append(QString.fromUtf8(a.data(),len(a))) ; - + #-----------------------# @@ -715,7 +739,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): """ fn = unicode(fn) - + if txt == None : txt = self.get_text_JDC(self.format,formatLigne=formatLigne) eol = '\n' @@ -743,6 +767,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): #-----------------------------------------------------------# if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP" if generator.plugins.has_key(format): + print "get_text_JDC" + # Le generateur existe on l'utilise self.generator=generator.plugins[format]() try : @@ -916,7 +942,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): ) return if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir - else : path=os.environ['HOME'] + else : path='C:/' monNomFichier="" if self.fichier is not None and self.fichier != "" : @@ -960,6 +986,41 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): (output, err) = p.communicate() + #-----------------# + def saveRunPSEN(self): + #-----------------# + print "saveRunPSEN" + self.saveFile() + return + if not(self.jdc.isvalid()): + QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), + tr("Un JdC valide est necessaire pour creer un .input") + ) + return + + print generator.plugins.has_key(self.format) + if generator.plugins.has_key(self.format): + # Le generateur existe on l'utilise + self.generator=generator.plugins[self.format]() + try : + self.generator.gener(self.jdc) + self.generator.writeDefault('') + except ValueError,e: + QMessageBox.critical(self, tr("Erreur a la generation"),str(e)) + if not self.generator.cr.estvide(): + self.affiche_infos(tr("Erreur a la generation"),Qt.red) + QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC")) + return "" + else: + # Il n'existe pas c'est une erreur + self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red) + QMessageBox.critical( self, "Format non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format)) + return "" + print "HELLO" + + + + #-----------------------------------------# def cherche_Groupes(self): #-----------------------------------------# @@ -978,7 +1039,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): dicoCourant=self.generator.dico return dicoCourant - + #-----------------------------------------# def handleAjoutGroup(self,listeGroup): @@ -1029,6 +1090,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): fn = unicode(QDir.convertSeparators(fn)) newName = fn + if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None) self.fichier = fn self.modified = False @@ -1216,7 +1278,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): def _newJDCCND(self): #---------------------------# extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)') - + #if self.salome == 0 : QMessageBox.information( self, tr("Fichier Med"), @@ -1235,7 +1297,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): texteVcut="" texteZs="" for groupe in self.listeGroupes : - if groupe[0:8]=='CURRENT_': + if groupe[0:8]=='CURRENT_': texteSources +=groupe[8:]+"=SOURCE(" texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n" if groupe[0:5]=='COND_': texteCond +=groupe[5:]+"=CONDUCTEUR();\n" diff --git a/InterfaceQT4/monWidgetPlusieursTuple.py b/InterfaceQT4/monWidgetPlusieursTuple.py new file mode 100644 index 00000000..005727d3 --- /dev/null +++ b/InterfaceQT4/monWidgetPlusieursTuple.py @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from politiquesValidation import PolitiquePlusieurs +from qtSaisie import SaisieValeur +from gereListe import GereListe +from gereListe import LECustom +from Tuple2 import Ui_Tuple2 +from Tuple3 import Ui_Tuple3 + + +#class TupleCustom(QWidget,Ui_Tuple2): +class TupleCustom : + def __init__(self,tailleTuple,parent,parentQt,index): + QWidget.__init__(self,parent) + self.setupUi(self) + self.tailleTuple=tailleTuple + self.parent=parent + self.parentQt=parentQt + self.valeur=None + self.index=index + + for i in range(self.tailleTuple): + nomLE="lineEditVal_"+str(i+1) + courant=getattr(self,nomLE) + courant.num=index + courant.dansUnTuple=True + self.connect(courant,SIGNAL("returnPressed()"),self.valueChange) + + + def valueChange(self): + listeVal=[] + for i in range(self.tailleTuple): + nomLE="lineEditVal_"+str(i+1) + courant=getattr(self,nomLE) + val=str(courant.text()) + if str(val)=="" or val==None : + courant.setFocus() + return + try : + valeur=eval(val,{}) + except : + valeur=val + listeVal.append(valeur) + self.valeur=listeVal + self.parentQt.changeValeur() + + + def setValeur(self,value): + listeVal=[] + valeurNulle=True + for i in range(self.tailleTuple): + nomLE="lineEditVal_"+str(i+1) + courant=getattr(self,nomLE) + try : + if str(value[i]) != "" : valeurNulle=False + except : + pass + try: + courant.setText(str(value[i])) + val=str(courant.text()) + try : + valeur=eval(val,{}) + except : + valeur=val + listeVal.append(valeur) + except : + pass + if valeurNulle == True : self.valeur=None + else : self.valeur=listeVal + + def getValeur(self): + listeVal=[] + for i in range(self.tailleTuple): + nomLE="lineEditVal_"+str(i+1) + courant=getattr(self,nomLE) + val=str(courant.text()) + listeVal.append(val) + return listeVal + + def clean(self): + self.valeur=None + for i in range(self.tailleTuple): + nomLE="lineEditVal_"+str(i+1) + courant=getattr(self,nomLE) + courant.setText("") + +class TupleCustom2(QWidget,Ui_Tuple2,TupleCustom): + def __init__(self,tailleTuple,parent,parentQt,index): + TupleCustom.__init__(self,tailleTuple,parent,parentQt,index) + +class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom): + def __init__(self,tailleTuple,parent,parentQt,index): + TupleCustom. __init__(self,tailleTuple,parent,parentQt,index) + +# ---------------------------- # + + +class MonWidgetPlusieursTuple(Feuille,GereListe): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + self.indexDernierLabel=0 + self.NumLineEditEnCours=0 + self.nomLine="TupleVal" + self.listeAffichageWidget=[] + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + GereListe.__init__(self) + self.politique=PolitiquePlusieurs(self.node,self.editor) + self.parentQt.commandesLayout.insertWidget(-1,self) + + def ajoutLineEdit(self,valeur=None,inInit=False): + self.indexDernierLabel=self.indexDernierLabel+1 + nomLineEdit=self.nomLine+str(self.indexDernierLabel) + if hasattr(self,nomLineEdit) : + self.indexDernierLabel=self.indexDernierLabel-1 + return + + if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel) + else : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel) + + self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE) + setattr(self,nomLineEdit,nouveauLE) + if valeur != None : nouveauLE.setValeur(valeur) + + self.listeAffichageWidget.append(nouveauLE.lineEditVal_1) + self.listeAffichageWidget.append(nouveauLE.lineEditVal_2) + if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3) + self.etablitOrdre() + + # deux lignes pour que le ensureVisible fonctionne + self.estVisible=nouveauLE.lineEditVal_1 + if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne) + + def etablitOrdre(self): + i=0 + while(i +1 < len(self.listeAffichageWidget)): + self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus) + self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1]) + i=i+1 + + + def setValeurs(self): + valeurs=self.node.item.get_valeur() + min,max=self.node.item.GetMinMax() + if max == "**" or max > 5 : aCreer=5 + else : aCreer=max + + if valeurs == () or valeurs == None : + for i in range(aCreer): self.ajoutLineEdit(inInit=True) + return + + for v in valeurs: + self.ajoutLineEdit(v,inInit=True) + + for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True) + + def rendVisibleLigne(self): + qApp.processEvents() + self.estVisible.setFocus(True) + self.scrollArea.ensureWidgetVisible(self.estVisible,0,0) + + + def changeValeur(self,changeDePlace=False,oblige=True): + #Pour compatibilite signature + aLeFocus=self.focusWidget() + listeComplete=[] + + libre=False + for i in range(self.indexDernierLabel) : + nom=self.nomLine+str(i+1) + courant=getattr(self,nom) + valeurTuple=courant.valeur + if valeurTuple == None or valeurTuple== "": + libre=True + continue + validite,comm,comm2,listeRetour= self.politique.AjoutTuple(valeurTuple,listeComplete) + if not validite: + if comm2 != '' : comm += " " + comm2 + self.editor.affiche_infos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red) + return + listeComplete.append(tuple(courant.valeur)) + if listeComplete == [] : listeComplete=None + self.node.item.set_valeur(listeComplete) + + if changeDePlace : return + min,max=self.node.item.GetMinMax() + if self.indexDernierLabel == max : self.editor.affiche_infos(tr('Nb maximum de valeurs atteint')) + if self.indexDernierLabel < max and libre==False : + self.ajoutLineEdit() + self.listeAffichageWidget[-2].setFocus(True) + else : + try : + qApp.processEvents() + w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1] + w.setFocus(True) + self.scrollArea.ensureWidgetVisible(w,0,0) + except : + pass + diff --git a/InterfaceQT4/monWidgetPlusieursTuple2.py b/InterfaceQT4/monWidgetPlusieursTuple2.py new file mode 100644 index 00000000..0acaae01 --- /dev/null +++ b/InterfaceQT4/monWidgetPlusieursTuple2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from monWidgetPlusieursTuple import MonWidgetPlusieursTuple +from desWidgetPlusieursTuple import Ui_WidgetPlusieursTuple + + +class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + self.nbValeurs=2 + MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + diff --git a/InterfaceQT4/monWidgetPlusieursTuple3.py b/InterfaceQT4/monWidgetPlusieursTuple3.py new file mode 100644 index 00000000..83a911a4 --- /dev/null +++ b/InterfaceQT4/monWidgetPlusieursTuple3.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from monWidgetPlusieursTuple import MonWidgetPlusieursTuple +from desWidgetPlusieursTuple import Ui_WidgetPlusieursTuple + + +class MonWidgetPlusieursTuple3 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + self.nbValeurs=3 + MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + diff --git a/UiQT4/Tuple2.ui b/UiQT4/Tuple2.ui new file mode 100644 index 00000000..3bf7199d --- /dev/null +++ b/UiQT4/Tuple2.ui @@ -0,0 +1,137 @@ + + + Tuple2 + + + + 0 + 0 + 539 + 35 + + + + Form + + + + 0 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + + 805 + 16777215 + + + + background:rgb(235,235,235); +border:0px; + + + + + false + + + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + + 805 + 16777215 + + + + Qt::StrongFocus + + + background:rgb(235,235,235); +border:0px; + + + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + + + Qt::Horizontal + + + + 123 + 20 + + + + + + + + + LECustomTuple + QLineEdit +
gereListe.h
+
+
+ + +
diff --git a/UiQT4/Tuple3.ui b/UiQT4/Tuple3.ui new file mode 100644 index 00000000..10c44979 --- /dev/null +++ b/UiQT4/Tuple3.ui @@ -0,0 +1,164 @@ + + + Tuple3 + + + + 0 + 0 + 880 + 33 + + + + Form + + + + 0 + + + 0 + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + + 805 + 16777215 + + + + background:rgb(235,235,235); +border:0px; + + + + + false + + + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + + 805 + 16777215 + + + + Qt::StrongFocus + + + background:rgb(235,235,235); +border:0px; + + + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + + 805 + 16777215 + + + + Qt::StrongFocus + + + background:rgb(235,235,235); +border:0px; + + + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + + + Qt::Horizontal + + + + 123 + 20 + + + + + + + + + LECustomTuple + QLineEdit +
gereListe.h
+
+
+ + +
diff --git a/UiQT4/desWidgetPlusieursTuple.ui b/UiQT4/desWidgetPlusieursTuple.ui new file mode 100644 index 00000000..38d1e84f --- /dev/null +++ b/UiQT4/desWidgetPlusieursTuple.ui @@ -0,0 +1,597 @@ + + + WidgetPlusieursTuple + + + + 0 + 0 + 966 + 251 + + + + + 0 + 0 + + + + + 0 + 230 + + + + Form + + + + 0 + + + 0 + + + 1 + + + 0 + + + 5 + + + + + 0 + + + + + 0 + + + QLayout::SetFixedSize + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 21 + 20 + + + + + + + + + 21 + 25 + + + + + 21 + 25 + + + + Qt::ClickFocus + + + Affiche le rapport de validation du mot-clef + + + border : 0px + + + ... + + + + ../Editeur/icons/ast-green-ball.png../Editeur/icons/ast-green-ball.png + + + + 25 + 25 + + + + + + + + + + Qt::Vertical + + + + 20 + 5 + + + + + + + + + + + 0 + 0 + + + + + 300 + 25 + + + + + 178 + 16777215 + + + + QFrame::NoFrame + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + false + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + QFrame::NoFrame + + + + + + + 0 + 0 + + + + background : rgb(247,247,247) + + + QFrame::NoFrame + + + 1 + + + true + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + 0 + 0 + 539 + 227 + + + + + 0 + 0 + + + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 13 + + + + + + + + QFrame::Box + + + + 0 + + + + + 0 + + + QLayout::SetFixedSize + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Remonte la ligne + + + border : 0px + + + ... + + + + + + + + + 32 + 32 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Descend la ligne + + + border : 0px + + + ... + + + + + + + + + 32 + 32 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + supprime une ligne + + + border : 0px + + + ... + + + + ../Editeur/icons/MoinsBleu2.png + + + + + 32 + 32 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Ajoute une ligne + + + border : 0px + + + ... + + + + ../Editeur/icons/PlusBleu.png../Editeur/icons/PlusBleu.png + + + + 32 + 32 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Montre l'ensemble des valeurs + + + border : 0px + + + ... + + + + ../Editeur/icons/verre-loupe-icone-6087-64.png../Editeur/icons/verre-loupe-icone-6087-64.png + + + + 32 + 32 + + + + + + + + + + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 25 + 30 + + + + Qt::ClickFocus + + + Ouvre un fichier de sélection des valeurs + + + border:0px + + + ... + + + + + + + + + 32 + 32 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 20 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Détruit le mot-clef + + + border : 0px + + + ... + + + + ../Editeur/icons/deleteRond.png../Editeur/icons/deleteRond.png + + + + 32 + 32 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + MonBoutonValide + QToolButton +
monBoutonValide.h
+
+ + MonLabelClic + QLabel +
monLabelClic.h
+
+
+ + +