Salome HOME
legere difference ds VARIABLES_TO_BE...
[tools/eficas.git] / InterfaceQT4 / monWidgetCB.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   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 .feuille               import Feuille
32 from desWidgetCB           import Ui_WidgetCB 
33 from .politiquesValidation  import PolitiqueUnique
34 from .qtSaisie              import SaisieValeur
35
36 from PyQt5.QtWidgets import QComboBox, QCompleter
37 from PyQt5.QtCore import Qt
38
39
40 class MonWidgetCBCommun (Ui_WidgetCB,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.get_valeur()==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.get_valeur()
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       for choix in self.maListeDeValeur:
67           if not(type(choix) == str) : choix=str(choix)
68           listeChoix.append(choix)
69           self.CBChoix.addItem(choix)
70       self.CBChoix.setEditable(True)
71       monCompleteur=QCompleter(listeChoix,self) 
72       monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
73       self.CBChoix.setCompleter(monCompleteur)
74
75   def ChoixSaisi(self):
76       self.CBChoix.lineEdit().setStyleSheet(("\n"
77 "QLineEdit {\n"
78 "     font : italic ;\n"
79 "     background: rgb(235,235,235);\n"
80 " }"))
81       valeur=str(self.CBChoix.currentText())
82       SaisieValeur.LEValeurPressed(self,valeur)
83       self.reaffiche()
84
85 class MonWidgetCB (MonWidgetCBCommun):
86
87   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
88       self.maListeDeValeur=monSimpDef.into
89       MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
90
91 class MonWidgetCBSD (MonWidgetCBCommun):
92
93   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
94       self.maListeDeValeur=node.item.get_sd_avant_du_bon_type()
95       MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)