From b81fc0b5a753b91fbe74582aaa6f2b41b0c9bdc7 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 11 May 2016 18:44:34 +0200 Subject: [PATCH] sauve du 11 --- InterfaceQT4/browser.py | 7 +- InterfaceQT4/groupe.py | 4 +- InterfaceQT4/monGroupeOptionnel.py | 126 ++++++++++++++++++++++++ InterfaceQT4/monWidgetCommande.py | 4 +- InterfaceQT4/monWidgetOptionnel.py | 6 +- InterfaceQT4/monWidgetPlusieursBase.py | 12 ++- UiQT5/CMakeLists.txt | 1 + UiQT5/desGroupeOptionnel.ui | 130 +++++++++++++++++++++++++ UiQT5/desWidgetOptionnel.ui | 4 +- UiQT5/makefile | 4 +- 10 files changed, 281 insertions(+), 17 deletions(-) create mode 100644 InterfaceQT4/monGroupeOptionnel.py create mode 100644 UiQT5/desGroupeOptionnel.ui diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 3ef56b2c..13e98f22 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -348,9 +348,9 @@ class JDCNode(QTreeWidgetItem,GereRegles): if self.editor.fenetreCentraleAffichee != None : #print "j enleve ", self.editor.fenetreCentraleAffichee, self.editor.fenetreCentraleAffichee.node.item.nom self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee) - self.editor.fenetreCentraleAffichee.setParent(None) self.editor.fenetreCentraleAffichee.close() + self.editor.fenetreCentraleAffichee.deleteLater() self.editor.widgetCentraleLayout.addWidget(self.fenetre) #print "j ajoute ", self.fenetre, self.fenetre.node.item.nom @@ -431,7 +431,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): Rend le noeud courant (self) selectionne et deselectionne tous les autres """ - print "select pour", self.item.nom + #print "select pour", self.item.nom for item in self.tree.selectedItems() : item.setSelected(0) self.tree.setCurrentItem( self ) @@ -613,6 +613,8 @@ class JDCNode(QTreeWidgetItem,GereRegles): def onValid(self): #print "onValid pour ", self.item.nom + if self.JESUISOFF==1 : return + if hasattr(self,'fenetre') and self.fenetre: self.fenetre.setValide() if (self.item.nom == "VARIABLE" or self.item.nom == "DISTRIBUTION") and self.item.isvalid(): self.item.jdc.recalcule_etat_correlation() @@ -642,7 +644,6 @@ class JDCNode(QTreeWidgetItem,GereRegles): - def update_node_valid(self): """Cette methode remet a jour la validite du noeud (icone) Elle appelle isvalid diff --git a/InterfaceQT4/groupe.py b/InterfaceQT4/groupe.py index abec93d5..d70b5943 100644 --- a/InterfaceQT4/groupe.py +++ b/InterfaceQT4/groupe.py @@ -169,9 +169,9 @@ class Groupe(QWidget,FacultatifOuOptionnel): nouveau=widget.node.append_child(nom) if firstNode==None : firstNode=nouveau if nouveau == None or nouveau == 0 : - self.editor.affiche_infos(tr('insertion impossible a cet endroit pour '+nom),red) + self.editor.affiche_infos(tr('insertion impossible a cet endroit pour '+nom),Qt.red) self.reaffiche(firstNode) - if firstNode!=None and firstNode.item!=None : + if firstNode!=None and firstNode !=0 and firstNode.item!=None : firstNode.select() diff --git a/InterfaceQT4/monGroupeOptionnel.py b/InterfaceQT4/monGroupeOptionnel.py new file mode 100644 index 00000000..8711f2f4 --- /dev/null +++ b/InterfaceQT4/monGroupeOptionnel.py @@ -0,0 +1,126 @@ +# 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 +# Modules Eficas + +from determine import monEnvQT5 +if monEnvQT5: + from PyQt5.QtWidgets import QCheckBox, QWidget, QLabel + from PyQt5.QtCore import Qt +else : + from PyQt4.QtGui import * + from PyQt4.QtCore import * + +from Extensions.i18n import tr +from desGroupeOptionnel import Ui_groupeOptionnel + + +# Import des panels + +class monButtonCustom(QCheckBox): + + def __init__(self,texte,monOptionnel,parent=None): + QCheckBox.__init__(self,tr(texte),parent) + self.texte=texte + self.monOptionnel=monOptionnel + + def mouseDoubleClickEvent(self, event): + #print "dans mouseDoubleClickEvent", self + if self not in self.monOptionnel.dicoCb.keys() : + event.accept() + return + listeCheckedMC="+"+self.monOptionnel.dicoCb[self] + self.monOptionnel.parentMC.ajoutMC(listeCheckedMC) + event.accept() + + + def mousePressEvent(self, event): + #rint "dans mousePressEvent" + self.mousePressed=True + if not( event.button() != Qt.RightButton) : + event.accept() + return + QCheckBox.mousePressEvent(self, event) + event.accept() + + +class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel): + """ + """ + def __init__(self,liste,parentQt,parentMC): + #print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom + QWidget.__init__(self,None) + self.setupUi(self) + self.listeChecked=[] + self.dicoCb={} + self.mousePressed=False + self.cbPressed=None + self.cb=None + self.parentQt=parentQt + self.parentMC=parentMC + self.afficheTitre() + if liste != [] : self.affiche(liste) + else : self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel'))) + + + def afficheTitre(self): + labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText() + l=tr(labeltext) + li=[] + while len(l) > 25: + li.append(l[0:24]) + l=l[24:] + li.append(l) + texte="" + for l in li : texte+=l+"\n" + texte=texte[0:-2] + self.MCLabel.setText(texte) + + def affiche(self,liste): + #print "dans Optionnel ____ affiche", liste + self.dicoCb={} + liste.reverse() + for mot in liste : + cb = monButtonCustom(mot,self) + #if monEnvQT5: + # cb.clicked.connect(self.ajoutMC) + #else : + # self.connect(cb,SIGNAL("clicked()"), self.ajoutMC) + self.MCOptionnelLayout.insertWidget(0,cb) + self.dicoCb[cb]=mot + self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0) + #print "Fin Optionnel ____ affiche", liste + + def CBChecked(self): + # ordre ? + return + for cb in self.dicoCb.keys() : + if cb.isChecked() and self.dicoCb[cb] not in self.listeChecked : self.listeChecked.append(self.dicoCb[cb]) + if not(cb.isChecked()) and self.dicoCb[cb] in self.listeChecked : self.listeChecked.remove(self.dicoCb[cb]) + self.parentMC.recalculeListeMC(self.listeChecked) + +# +# def ajoutMC(self): +# maListe="" +# for cb in self.dicoCb.keys(): +# if cb.isChecked() : maListe+="+"+str(cb.text()) +# if maListe=="":return + #print "dans Optionnel __ ajout de ", maListe +# self.parentMC.ajoutMC(maListe) +# diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 18bc0000..9e0868c0 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -229,12 +229,12 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.node.affichePanneau() #print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV QTimer.singleShot(1, self.recentre) - if nodeAVoir != None: + if nodeAVoir != None and nodeAVoir!=0: self.f=nodeAVoir.fenetre if self.f==None : newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object) self.f = newNode.fenetre - print "dans reaffiche",self.f, nodeAVoir.item.nom + #print "dans reaffiche",self.f, nodeAVoir.item.nom if self.f != None and self.f.isVisible() : return if self.f != None : QTimer.singleShot(1, self.rendVisible) self.inhibeExpand=False diff --git a/InterfaceQT4/monWidgetOptionnel.py b/InterfaceQT4/monWidgetOptionnel.py index 3f249af3..929c060d 100644 --- a/InterfaceQT4/monWidgetOptionnel.py +++ b/InterfaceQT4/monWidgetOptionnel.py @@ -59,12 +59,12 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): return groupe def vireLesAutres(self,MC): - print "je passe dans vireLesAutres" + #print "je passe dans vireLesAutres" genea =MC.obj.get_genealogie() for k in self.dicoMCWidgetOptionnel.keys(): if k not in genea : self.dicoMCWidgetOptionnel[k].close() - if k not in genea : print k - print "________" + #if k not in genea : print k + #print "________" def titre(self,MC): diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index 43e416aa..5565576e 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -46,7 +46,7 @@ hauteurMax=253 class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): - print "MonWidgetPlusieursBase", nom + #print "MonWidgetPlusieursBase", nom self.nomLine="lineEditVal" self.inInit=True self.indexDernierLabel=0 @@ -55,7 +55,10 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie) Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) GereListe.__init__(self) self.gereIconePlier() - self.connect(self.BSelectFichier,SIGNAL("clicked()"), self.selectInFile) + if monEnvQT5: + self.BSelectFichier.clicked.connect(self.selectInFile) + else : + self.connect(self.BSelectFichier,SIGNAL("clicked()"), self.selectInFile) if sys.platform[0:5]!="linux": repIcon=self.node.editor.appliEficas.repIcon @@ -126,7 +129,10 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie) 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) + if monEnvQT5: + nouveauLE.returnPressed.connect(self.changeValeur) + else : + self.connect(nouveauLE,SIGNAL("returnPressed()"),self.changeValeur) setattr(self,nomLineEdit,nouveauLE) self.listeAffichageWidget.append(nouveauLE) self.etablitOrdre() diff --git a/UiQT5/CMakeLists.txt b/UiQT5/CMakeLists.txt index 916356ed..48ed0f90 100644 --- a/UiQT5/CMakeLists.txt +++ b/UiQT5/CMakeLists.txt @@ -45,6 +45,7 @@ eficas_compile_ui ( desWidgetCreeParam.ui ) eficas_compile_ui ( desWidgetCommande.ui ) eficas_compile_ui ( desWidgetFormule.ui ) eficas_compile_ui ( desWidgetOptionnel.ui ) +eficas_compile_ui ( desGroupeOptionnel.ui ) eficas_compile_ui ( Tuple2.ui ) eficas_compile_ui ( Tuple3.ui ) # diff --git a/UiQT5/desGroupeOptionnel.ui b/UiQT5/desGroupeOptionnel.ui new file mode 100644 index 00000000..217e1fb7 --- /dev/null +++ b/UiQT5/desGroupeOptionnel.ui @@ -0,0 +1,130 @@ + + + groupeOptionnel + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + 0 + 0 + + + + QFrame::Box + + + QFrame::Raised + + + + + + + 0 + 0 + + + + + 0 + 31 + + + + QFrame::NoFrame + + + QFrame::Raised + + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + + + + + + + Qt::Horizontal + + + + 1037 + 20 + + + + + + + + + + + + 0 + 0 + + + + background : rgb(247,247,247) + + + QFrame::NoFrame + + + 0 + + + true + + + + + 0 + 0 + 382 + 223 + + + + + 0 + 0 + + + + + + + Qt::Vertical + + + + 20 + 75 + + + + + + + + + + + + + diff --git a/UiQT5/desWidgetOptionnel.ui b/UiQT5/desWidgetOptionnel.ui index df2de39a..079da5da 100644 --- a/UiQT5/desWidgetOptionnel.ui +++ b/UiQT5/desWidgetOptionnel.ui @@ -133,7 +133,7 @@ font : 'times' 9px true - + 0 @@ -148,7 +148,7 @@ font : 'times' 9px 0 - + diff --git a/UiQT5/makefile b/UiQT5/makefile index e753fe20..881ae82a 100644 --- a/UiQT5/makefile +++ b/UiQT5/makefile @@ -8,8 +8,8 @@ PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCo desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \ desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py \ desWidgetBloc.py desWidgetCB.py desWidgetCommentaire.py desWidgetDate.py \ - desWidgetFact.py desWidgetFactPlie.py desWidgetFormule.py desWidgetHeure.py \ - desWidgetInformation.py desWidgetInactif.py \ + desWidgetFact.py desWidgetFactPlie.py desWidgetFormule.py desGroupeOptionnel.py \ + desWidgetHeure.py desWidgetInformation.py desWidgetInactif.py \ desWidgetMatrice.py desWidgetParam.py desWidgetPlusieursBase.py desWidgetPlusieursInto.py \ desWidgetPlusieursIntoOrdonne.py desWidgetPlusieursTuple.py desWidgetRadioButton.py \ desWidget4a6RadioButton.py desWidgetSimpBase.py desWidgetSDCOInto.py desWidgetSimpBool.py \ -- 2.39.2