]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/monWidgetCB.py
Salome HOME
chgt copyright
[tools/eficas.git] / InterfaceQT4 / monWidgetCB.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2021   EDF R&D
3 #
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.
8 #
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.
13 #
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
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 # Modules Python
21 from __future__ import absolute_import
22 try :
23    from builtins import str
24 except : pass
25
26 import types,os
27
28 # Modules Eficas
29 from Extensions.i18n import tr
30
31 from InterfaceQT4.feuille               import Feuille
32 from desWidgetCB                        import Ui_WidgetCB 
33 from InterfaceQT4.politiquesValidation  import PolitiqueUnique
34 from InterfaceQT4.qtSaisie              import SaisieValeur
35
36 from PyQt5.QtWidgets import QComboBox, QCompleter
37 from PyQt5.QtCore import Qt
38
39
40 class MonWidgetCBCommun (Feuille):
41
42   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
43         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
44         self.politique=PolitiqueUnique(self.node,self.editor)
45         self.determineChoix()
46         self.setValeursApresBouton()
47         self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
48         #self.CBChoix.lineEdit().setText(tr("Select"))
49         self.parentQt.commandesLayout.insertWidget(-1,self)
50         self.maCommande.listeAffichageWidget.append(self.CBChoix)
51         self.AAfficher=self.CBChoix
52
53
54   def setValeursApresBouton(self):
55       if self.objSimp.getValeur()==None : 
56          self.CBChoix.setCurrentIndex(-1)
57          #self.CBChoix.lineEdit().setStyleSheet(("QLineEdit {" " background:yellow;\n" "font: italic ;\n" " }\n" " "))
58          self.CBChoix.lineEdit().setText(tr("Select"))
59          return
60       valeur=self.objSimp.getValeur()
61       if not(type(valeur) == str) : valeur=str(valeur)
62       self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
63       
64   def determineChoix(self):
65       listeChoix=[]
66       if self.maListeDeValeur == None : self.maListeDeValeur=[]
67       for choix in self.maListeDeValeur:
68           if not(type(choix) == str) : choix=str(choix)
69           listeChoix.append(choix)
70           self.CBChoix.addItem(choix)
71       self.CBChoix.setEditable(True)
72       monCompleteur=QCompleter(listeChoix,self) 
73       monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
74       self.CBChoix.setCompleter(monCompleteur)
75
76   def choixSaisi(self):
77       self.CBChoix.lineEdit().setStyleSheet(("\n"
78 "QLineEdit {\n"
79 "     font : italic ;\n"
80 "     background: rgb(235,235,235);\n"
81 " }"))
82       valeur=str(self.CBChoix.currentText())
83       SaisieValeur.LEvaleurPressed(self,valeur)
84       self.reaffiche()
85
86 class MonWidgetCB (Ui_WidgetCB, MonWidgetCBCommun):
87
88   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
89       self.maListeDeValeur=monSimpDef.into
90       MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
91
92 class MonWidgetCBSD (Ui_WidgetCB,MonWidgetCBCommun):
93
94   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
95       self.maListeDeValeur=node.item.getSdAvantDuBonType()
96       MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)