Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Prendre en Compte 2 ComboBox, PyQT

Salut a tous,

Je voudrai afficher dans un Spinbox une valeur que j'ai définie dans le code. Mais cela doit être fait par le choix de deux Combobox.

Mais je me rencontre que le programme s’exécute dans l'ordre chronologique :/

Code création du ComboBox :

self.ComboBox_0 = QtGui.QComboBox()
self.ComboBox_0.setGeometry(QtCore.QRect(10,10,10,10))
self.ComboBox_0.addItem("MODE")
self.ComboBox_0.addItem("HANDSET")
self.ComboBox_0.addItem("HANDFREE")
self.ComboBox_0.addItem("CAR KIT")
self.ComboBox_0.addItem("RSM")

self.ComboBox_1 = QtGui.QComboBox()
self.ComboBox_1.setGeometry(QtCore.QRect(10,10,10,10))
self.ComboBox_1.addItem("MODE2")
self.ComboBox_1.addItem("VOICE")
self.ComboBox_1.addItem("RING")
self.ComboBox_1.addItem("BEEP")

VBoxLayout_1 = QtGui.QVBoxLayout()
VBoxLayout_1.addWidget(self.ComboBox_0)
VBoxLayout_1.addWidget(self.ComboBox_1)
VBoxLayout_1.setSpacing(200)
Code qui prend en compte le choix des ComboBox, et affiche le résultat dans le Spinbox :

self.ComboBox_0.currentIndexChanged['QString'].connect(self.changed)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.changed)
self.data = {"HANDSET","VOICE"}

def changed(self, txt):
self.SpinBox_1.setValue(1)
self.SpinBox_2.setValue(1)
self.SpinBox_3.setValue(1)
self.SpinBox_4.setValue(1)
self.SpinBox_5.setValue(1)
self.SpinBox_6.setValue(1)

#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.tata)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.tata)
self.data = {"HANDFREE","VOICE"}

def tata(self, txt):
self.SpinBox_1.setValue(2)
self.SpinBox_2.setValue(2)
self.SpinBox_3.setValue(2)
self.SpinBox_4.setValue(2)
self.SpinBox_5.setValue(2)
self.SpinBox_6.setValue(2)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.yoyo)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.yoyo)
self.dodo = {"CAR KIT","VOICE"}

def yoyo(self, txt):
self.SpinBox_1.setValue(3)
self.SpinBox_2.setValue(3)
self.SpinBox_3.setValue(3)
self.SpinBox_4.setValue(3)
self.SpinBox_5.setValue(3)
self.SpinBox_6.setValue(3)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.toto)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.toto)
self.dada = {"RSM","VOICE"}

def toto(self, txt):
self.SpinBox_1.setValue(4)
self.SpinBox_2.setValue(4)
self.SpinBox_3.setValue(4)
self.SpinBox_4.setValue(4)
self.SpinBox_5.setValue(4)
self.SpinBox_6.setValue(4)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lol)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lol)
self.hello = {"HANDSET","RING"}

def lol(self, txt):
self.SpinBox_1.setValue(5)
self.SpinBox_2.setValue(5)
self.SpinBox_3.setValue(5)
self.SpinBox_4.setValue(5)
self.SpinBox_5.setValue(5)
self.SpinBox_6.setValue(5)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lolo)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lolo)
self.hello = {"HANDFREE","RING"}

def lolo(self, txt):
self.SpinBox_1.setValue(6)
self.SpinBox_2.setValue(6)
self.SpinBox_3.setValue(6)
self.SpinBox_4.setValue(6)
self.SpinBox_5.setValue(6)
self.SpinBox_6.setValue(6)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lola)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lola)
self.hello = {"CAR KIT","RING"}

def lola(self, txt):
self.SpinBox_1.setValue(7)
self.SpinBox_2.setValue(7)
self.SpinBox_3.setValue(7)
self.SpinBox_4.setValue(7)
self.SpinBox_5.setValue(7)
self.SpinBox_6.setValue(7)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.loli)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.loli)
self.hello = {"RSM","RING"}

def loli(self, txt):
self.SpinBox_1.setValue(8)
self.SpinBox_2.setValue(8)
self.SpinBox_3.setValue(8)
self.SpinBox_4.setValue(8)
self.SpinBox_5.setValue(8)
self.SpinBox_6.setValue(8)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lolz)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lolz)
self.hello = {"HANDSET","BEEP"}

def lolz(self, txt):
self.SpinBox_1.setValue(9)
self.SpinBox_2.setValue(9)
self.SpinBox_3.setValue(9)
self.SpinBox_4.setValue(9)
self.SpinBox_5.setValue(9)
self.SpinBox_6.setValue(9)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lolx)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lolx)
self.hello = {"HANDFREE","BEEP"}

def lolx(self, txt):
self.SpinBox_1.setValue(10)
self.SpinBox_2.setValue(10)
self.SpinBox_3.setValue(10)
self.SpinBox_4.setValue(10)
self.SpinBox_5.setValue(10)
self.SpinBox_6.setValue(10)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lolq)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lolq)
self.hello = {"CAR KIT","BEEP"}

def lolq(self, txt):
self.SpinBox_1.setValue(11)
self.SpinBox_2.setValue(11)
self.SpinBox_3.setValue(11)
self.SpinBox_4.setValue(11)
self.SpinBox_5.setValue(11)
self.SpinBox_6.setValue(11)
#--------------------------------------------
self.ComboBox_0.currentIndexChanged['QString'].connect(self.lole)
self.ComboBox_1.currentIndexChanged['QString'].connect(self.lole)
self.hello = {"RSM","BEEP"}

def lole(self, txt):
self.SpinBox_1.setValue(12)
self.SpinBox_2.setValue(12)
self.SpinBox_3.setValue(12)
self.SpinBox_4.setValue(12)
self.SpinBox_5.setValue(12)
self.SpinBox_6.setValue(12)
#--------------------------------------------
Je donne toute les combinaison, pour que vous voyez que cela s'exécute dans l'ordre chronologiqe, et non par les choix des ComboBox.

Merci d'avance

Réponses

  • Bonjour,

    Je ne comprends pas bien ce que tu veux faire avec tes 2 combobox et tes 6 spinbox, mais on peut faire des tas de choses intéressantes avec des combobox, par exemple:
    - faire que la liste du 2ème dépende de l'item affiché dans le 1er (combobox en cascade).
    - pour relier l'affichage d'un combobox avec un spinbox, on peut utiliser un dictionnaire {..., "HANDFREE":1, ...}.

    Donne un exemple de ce que tu veux faire:
    - j'ai telles valeurs affichées au lancement du programme
    - je fais ça avec le 1er combobox, puis ça avec le 2ème
    - les spinbox devraient afficher ça
    - etc...
  • Merci pour ta réponse

    J'ai changer mon cahier de charge
    Pour simplifier les choses, j'ai crée un autre petit programme.

    Voila ce que je veut faire :

    Je voudrai enregistré les valeurs présents dans mes Spinbox, lorsque je choisie des éléments dans un ComboBox.

    Exemple : Spinbox1 = 4 et Spinbox2 = 5

    Si ComboBox1 = A et ComboBox2 = B
    Alors stocker valeur Spinbox1 et Spinbox2 dans un tableau de donnée : Tab = [4, 5]
    Et faire un print du tableau de donnée

    Exemple2 : Spinbox1 = 2 et Spinbox2 = 8

    Si ComboBox1 = B et ComboBox2 = D
    Alors stocker valeur Spinbox1 et Spinbox2 dans un tableau de donnée : Tab = [2, 8]
    Et faire un print du tableau de donnée

    Remarque : Les valeurs dans les Spinbox son choisit dans l'interface graphique

    Voici le code :

    import sys
    import time
    import serial
    import binascii

    from PyQt4 import QtCore, QtGui

    class jouer(QtGui.QMainWindow):
    def __init__(self):

    # Main Window #
    QtGui.QMainWindow.__init__(self)
    self.resize(310,310)
    self.setWindowTitle(' debutant ')

    self.ComboBox_0 = QtGui.QComboBox()
    self.ComboBox_0.setGeometry(QtCore.QRect(10,10,10,10))
    self.ComboBox_0.addItem("A")
    self.ComboBox_0.addItem("B")

    self.ComboBox_1 = QtGui.QComboBox()
    self.ComboBox_1.setGeometry(QtCore.QRect(10,10,10,10))
    self.ComboBox_1.addItem("C")
    self.ComboBox_1.addItem("D")

    ''' SpinBox 1 '''
    self.SpinBox_1 = QtGui.QSpinBox(self)
    self.SpinBox_1.setRange(-12,12)
    self.SpinBox_1.setSingleStep(1)
    self.SpinBox_1.setValue(0)

    ''' SpinBox 2 '''
    self.SpinBox_2 = QtGui.QSpinBox(self)
    self.SpinBox_2.setRange(-12,12)
    self.SpinBox_2.setSingleStep(1)
    self.SpinBox_2.setValue(0)



    self.GridLayout_1 = QtGui.QGridLayout()
    self.GridLayout_1.addWidget(self.ComboBox_0, 1,0,1,1)
    self.GridLayout_1.addWidget(self.ComboBox_1, 2,0,1,1)
    self.GridLayout_1.addWidget(self.SpinBox_1, 1,1,1,1)
    self.GridLayout_1.addWidget(self.SpinBox_2, 2,1,1,1)

    ''' Group Box '''
    self.O_GroupBox_1 = QtGui.QGroupBox()
    self.O_GroupBox_1.setLayout(self.GridLayout_1)
    ''' Main Window - Central Widget '''
    self.setCentralWidget(self.O_GroupBox_1)


    def main():
    '''Application'''
    App = QtGui.QApplication(sys.argv)
    App.setStyle("windows")
    MainWin2 = jouer()
    MainWin2.show()
    sys.exit(App.exec_() )

    if __name__=='__main__':
    main()

Connectez-vous ou Inscrivez-vous pour répondre.