X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonWidgetPlusieursBase.py;h=a43800ab0e7f70d6f47c04509c1b5efe33514fe1;hb=80eb29926b88137b9f0f19175c0d0c52d7dcc206;hp=95fa29a3b43cad8f37695ff9c0901ba7e55fa0da;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index 95fa29a3..a43800ab 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -30,20 +30,40 @@ from desWidgetPlusieursBase import Ui_WidgetPlusieursBase from politiquesValidation import PolitiquePlusieurs from qtSaisie import SaisieValeur from gereListe import GereListe +from gereListe import LECustom -class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille): +dicoLongueur={2:95,3:125,4:154,5:183,6:210} +hauteurMax=253 - def __init__(self,node,monSimpDef,nom,objSimp,parentQt): - print "MonWidgetPlusieursBase", nom - self.index=1 +class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + #print "MonWidgetPlusieursBase", nom + self.nomLine="lineEditVal" + self.inInit=True self.indexDernierLabel=0 - Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.NumLineEditEnCours=0 + self.listeAffichageWidget=[] + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + GereListe.__init__(self) + self.connect(self.BSelectFichier,SIGNAL("clicked()"), self.selectInFile) + self.listeValeursCourantes=self.node.item.GetListeValeurs() - self.parentQt.commandesLayout.insertWidget(1,self) + if self.monSimpDef.max != "**" and self.monSimpDef.max < 7: + hauteur=dicoLongueur[self.monSimpDef.max] + self.resize(self.width(),hauteur) + self.setMinimumHeight(hauteur) + if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur) + else : + self.resize(self.width(),hauteurMax) + self.setMinimumHeight(hauteurMax) + self.parentQt.commandesLayout.insertWidget(-1,self) + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + self.AAfficher=self.lineEditVal1 + self.inInit=False def setValeurs(self): - #print "je passe dans SetValeur" self.vScrollBar = self.scrollArea.verticalScrollBar() self.politique=PolitiquePlusieurs(self.node,self.editor) # construction du min de valeur a entrer @@ -52,12 +72,12 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille): for i in range(1,aConstruire): self.ajoutLineEdit() qApp.processEvents() - self.scrollArea.ensureWidgetVisible(self.labelVal1) + self.scrollArea.ensureWidgetVisible(self.lineEditVal1) self.listeValeursCourantes=self.node.item.GetListeValeurs() index=1 for valeur in self.listeValeursCourantes : val=self.politique.GetValeurTexte(valeur) - nomLineEdit="labelVal"+str(index) + nomLineEdit="lineEditVal"+str(index) if hasattr(self,nomLineEdit) : courant=getattr(self,nomLineEdit) courant.setText(str(val)) @@ -70,28 +90,38 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille): #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) - def ajoutLineEdit(self,valeur=None): + def ajoutLineEdit(self,valeur=None,): self.indexDernierLabel=self.indexDernierLabel+1 - nomLineEdit="labelVal"+str(self.indexDernierLabel) + nomLineEdit="lineEditVal"+str(self.indexDernierLabel) if hasattr(self,nomLineEdit) : self.indexDernierLabel=self.indexDernierLabel-1 return - nouveauLE = QLineEdit(self.scrollArea) + nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel) self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE) nouveauLE.setText("") if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)") else : nouveauLE.setStyleSheet("background:rgb(235,235,235)") nouveauLE.setFrame(False) self.connect(nouveauLE,SIGNAL("returnPressed()"),self.changeValeur) - nouveauLE.setFocus() setattr(self,nomLineEdit,nouveauLE) + self.listeAffichageWidget.append(nouveauLE) + self.etablitOrdre() if valeur != None : nouveauLE.setText(str(valeur)) # deux lignes pour que le ensureVisible fonctionne self.estVisible=nouveauLE - QTimer.singleShot(1, self.rendVisible) + if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne) + #if donneLeFocus==True : nouveauLE.setFocus() + + 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 + # si on boucle on perd l'ordre - def rendVisible(self): + def rendVisibleLigne(self): qApp.processEvents() self.estVisible.setFocus() self.scrollArea.ensureWidgetVisible(self.estVisible,0,0) @@ -132,18 +162,44 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille): self.listeValeursCourantes=self.listeValeursCourantes+listeRetour if len(self.listeValeursCourantes) > self.monSimpDef.min : self.node.item.set_valeur(self.listeValeursCourantes) + self.reaffiche() return None else : return(comm2+" "+comm) + def reaffiche(self): + # A priori, on ne fait rien + pass + def AjoutNValeur(self,liste) : + for val in liste : + i=1 + ajoute=False + while i < self.indexDernierLabel+1: + nomLineEdit="lineEditVal"+str(i) + courant=getattr(self,nomLineEdit) + valeur=courant.text() + if valeur == None or valeur == QString("") : + ajoute=True + courant.setText(str(val)) + commentaire=self.ajout1Valeur(val) + if (commentaire != None ): + self.editor.affiche_infos(commentaire,Qt.red) + courant.setText("") + break + else : + i=i+1 + if ajoute : continue + self.ajoutLineEdit(valeur=str(val)) + self.changeValeur() + - def changeValeur(self): + def changeValeur(self,changeDePlace=True,oblige=False): donneFocus=None derniereValeur=None self.listeValeursCourantes = [] for i in range (1, self.indexDernierLabel+1): - nomLineEdit="labelVal"+str(i) + nomLineEdit="lineEditVal"+str(i) courant=getattr(self,nomLineEdit) valeur=courant.text() if valeur != None and valeur != "" : @@ -152,25 +208,31 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille): self.editor.affiche_infos(commentaire,Qt.red) courant.setText("") donneFocus=courant + self.reaffiche() + return + else : + self.editor.affiche_infos("") elif donneFocus==None : donneFocus=courant - nomDernierLineEdit="labelVal"+str(self.indexDernierLabel) + nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel) dernier=getattr(self,nomDernierLineEdit) derniereValeur=dernier.text() - print 'ds chge valeur' - if donneFocus != None : - donneFocus.setFocus() - self.scrollArea.ensureWidgetVisible(donneFocus) - elif self.indexDernierLabel < self.monSimpDef.max : + if changeDePlace: + if donneFocus != None : + donneFocus.setFocus() + self.scrollArea.ensureWidgetVisible(donneFocus) + elif self.indexDernierLabel < self.monSimpDef.max : self.ajoutLineEdit() - else : - self.scrollArea.setToolTip('nb max de valeurs atteint') - self.editor.affiche_infos('nb max de valeurs atteint') if self.listeValeursCourantes == [] : return min,max = self.node.item.GetMinMax() + if len(self.listeValeursCourantes) < self.monSimpDef.min : + self.editor.affiche_infos(tr('nb min de valeurs : ')+str( self.monSimpDef.min)) + if len(self.listeValeursCourantes) < min and oblige==True: return if len(self.listeValeursCourantes) > max : return - if len(self.listeValeursCourantes) < min : return self.node.item.set_valeur(self.listeValeursCourantes) + if len(self.listeValeursCourantes) == self.monSimpDef.max : + self.editor.affiche_infos(tr('nb max de valeurs atteint')) self.setValide() + self.reaffiche()