X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonWidgetPlusieursInto.py;h=ca31a0b546e82acb51ae53a9564546c1cf35ffaa;hb=39b7b166eb606b80c9ac427811651b20db79bde2;hp=a4f3e39ff85ce3a95bac51d8ff977aa397928d56;hpb=8da5de6cb594bf9b703b723ace2514f644d866b8;p=tools%2Feficas.git diff --git a/InterfaceQT4/monWidgetPlusieursInto.py b/InterfaceQT4/monWidgetPlusieursInto.py index a4f3e39f..ca31a0b5 100644 --- a/InterfaceQT4/monWidgetPlusieursInto.py +++ b/InterfaceQT4/monWidgetPlusieursInto.py @@ -21,17 +21,23 @@ import string,types,os # Modules Eficas -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from determine import monEnvQT5 +if monEnvQT5: + from PyQt5.QtWidgets import QCheckBox, QScrollBar, QFrame, QApplication + from PyQt5.QtCore import Qt +else : + from PyQt4.QtGui import * + from PyQt4.QtCore import * + from Extensions.i18n import tr from feuille import Feuille from desWidgetPlusieursInto import Ui_WidgetPlusieursInto from politiquesValidation import PolitiquePlusieurs from qtSaisie import SaisieValeur -from gereListe import GereListe +from gereListe import GerePlie -class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): +class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): #print "MonWidgetPlusieursInto", nom, self @@ -39,17 +45,41 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) self.listeValeursCourantes=self.node.item.GetListeValeurs() self.parentQt.commandesLayout.insertWidget(-1,self) - self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + #if len(self.listeValeursCourantes) == len(self.monSimpDef.into) : self.CBCheck.setChecked(False) + #else : self.CBCheck.setChecked(True) + if monEnvQT5 : self.CBCheck.stateChanged.connect(self.change) + else : self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change) + self.gereIconePlier() + self.inhibe=False + self.finCommentaireListe() + # try except si la liste des possibles est vide + # prevoir qqchose + try : + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + except : + pass + + def change(self,int): + if self.inhibe:return + self.inhibe=True + if not(self.CBCheck.isChecked()) : + for i in range(len(self.listeAAfficher)): + nomCB="lineEditVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setChecked(True) + self.CBCheck.setChecked(False) + else : + min,max = self.node.item.GetMinMax() + for i in range(len(self.listeAAfficher)): + nomCB="lineEditVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setChecked(False) + self.CBCheck.setChecked(True) + self.inhibe=False def setValeurs(self): self.listeValeursCourantes=self.node.item.GetListeValeurs() - #print "dans setValeurs" - #print self.node.item.definition.validators - #print self.monSimpDef.into - #if len(self.monSimpDef.into)*20 > 400 : self.setMinimumHeight(400) - #else : self.setMinimumHeight(len(self.monSimpDef.into)*30) - #self.adjustSize() if hasattr(self.node.item.definition.validators,'set_MCSimp'): obj=self.node.item.getObject() self.node.item.definition.validators.set_MCSimp(obj) @@ -63,33 +93,40 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): else: self.listeAAfficher=self.node.item.get_liste_possible([]) else : - self.listeAAfficher=self.monSimpDef.into + self.listeAAfficher=self.node.item.get_liste_possible([]) + + self.PourEtreCoche=self.listeValeursCourantes + if self.objSimp.wait_assd() : + self.listeAAfficher=self.node.item.get_sd_avant_du_bon_type() + self.PourEtreCoche=[] + for concept in self.listeValeursCourantes: + self.PourEtreCoche.append(concept.nom) if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) else : self.setMinimumHeight(len(self.listeAAfficher)*30) self.adjustSize() self.vScrollBar = self.scrollArea.verticalScrollBar() self.politique=PolitiquePlusieurs(self.node,self.editor) self.indexListe=1 - for i in range(1,len(self.listeAAfficher)+1): - self.ajoutCB(i) + for i in range(1,len(self.listeAAfficher)+1): self.ajoutCB(i) for i in range(len(self.listeAAfficher)): nomCB="lineEditVal"+str(i+1) courant=getattr(self,nomCB) courant.setText(str(self.listeAAfficher[i])) - if self.monSimpDef.into[i] in self.listeValeursCourantes : + #if self.monSimpDef.into[i] in self.listeValeursCourantes : + if self.listeAAfficher[i] in self.PourEtreCoche : courant.setChecked(True) - self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur) + if monEnvQT5 : courant.toggled.connect(self.changeValeur) + else : self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur) self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) def ajoutCB(self,index,valeur=None): #print "ajoutCB ", index nomCB="lineEditVal"+str(index) - if hasattr(self,nomCB) : - return + if hasattr(self,nomCB) : return nouveauCB = QCheckBox(self.scrollArea) self.CBLayout.addWidget(nouveauCB) - qApp.processEvents() + QApplication.processEvents() nouveauCB.setText("") if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)") else : nouveauCB.setStyleSheet("background:rgb(240,240,240)") @@ -99,26 +136,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def finCommentaire(self): - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaines de caracteres', - 'R' : 'reels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : - if mc.min == mc.max: - commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ") - else : - commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ") - else : - if mc.min == mc.max: - commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type]) - else : - commentaire=tr("Entrez entre ")+str(mc.min)+(" et ")+str(mc.max) +" " +tr(d_aides[type]) - aideval=self.node.item.aide() - commentaire=commentaire + " " + QString.toUtf8(QString(aideval)) - return str(commentaire) + return self.finCommentaireListe() def ajout1Valeur(self,valeur=None): #print "________________" @@ -146,7 +164,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def changeValeur(self): self.listeValeursCourantesAvant=self.listeValeursCourantes self.listeValeursCourantes = [] - print "changeValeur ____________" , self.monSimpDef.into, len(self.monSimpDef.into) + #print "changeValeur ____________" , self.monSimpDef.into, len(self.monSimpDef.into) for i in range (1,len(self.listeAAfficher)+1): nomLineEdit="lineEditVal"+str(i) courant=getattr(self,nomLineEdit) @@ -156,15 +174,17 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): commentaire=self.ajout1Valeur(valeur) if (commentaire != None ): self.editor.affiche_infos(commentaire,Qt.red) - courant.setText("") min,max = self.node.item.GetMinMax() if len(self.listeValeursCourantes) < min : self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) elif len(self.listeValeursCourantes) > max : self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) - else : - self.editor.affiche_infos(tr("")) + if self.listeValeursCourantes== [] : self.listeValeursCourantes=None self.node.item.set_valeur(self.listeValeursCourantes) + if self.listeValeursCourantes != None and (len(self.listeValeursCourantes) != len(self.monSimpDef.into)) : + self.inhibe=True + self.CBCheck.setChecked(True) + self.inhibe=False self.setValide() self.reaffiche()