IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Comment créer une connection lors d'une selection dans un combobox ?


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 57
    Points : 41
    Points
    41
    Par défaut Comment créer une connection lors d'une selection dans un combobox ?
    Bonsoir,

    Dans un petit programme de test, lorsque la 2eme fenêtre s'ouvre je peux sélectionner un item dans le combobox.
    Comment connecter cet évènement à une action (un print par exemple).
    Je joins à ma question les 3 fichiers :
    Merci de votre aide.

    Fic debut.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import sys
    from PyQt5.QtWidgets import QApplication
    from main import Main
     
     
    app = QApplication(sys.argv)
    uMain = Main()
     
    sys.exit(app.exec())
    fic main.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
    from PyQt5.QtGui import QIcon
    #from ImageViewerUI import Ui_MainWindow
    from VisuCli import Ui_Form_visucli
    import sys
    import sqlite3
     
     
    class Main(QMainWindow):
     
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
     
            self.initUI()
     
        def initUI(self):
            self.setGeometry(0, 0, 500, 500)
     
            ouvrirAction = QAction('&Ouvrir Visu Artistes', self)
            ouvrirAction.setShortcut('Ctrl+O')
            ouvrirAction.setStatusTip('Ouvrir Visu Artistes')
            ouvrirAction.triggered.connect(self.on_open)
     
            fermerAction = QAction('&Fermer Visu Artistes', self)
            fermerAction.setShortcut('Ctrl+F')
            fermerAction.setStatusTip('Fermer Visu Artistes')
            fermerAction.triggered.connect(self.on_close)
     
            self.statusBar()
            # QMainWindow.menuBar()
     
            menubar = self.menuBar()
            fileMenu = menubar.addMenu('&File')
            fileMenu.addAction(ouvrirAction)
            fileMenu.addAction(fermerAction)
     
            self.setWindowTitle('PyQt5 Fenêtre principale')
    #       self.show() #Affiche la fenêtre Main
            self.init_dialog()
            self.show() #Affiche la fenêtre Main (en fait la classe Main
     
     
     
        def init_dialog(self):
            self.form = QtWidgets.QDialog()
            self.ui = Ui_Form_visucli()
            self.ui.setupUi(self.form)
     
            #self.ui.LineEd_nom.setText('coucou')
            #self.ui.label_nom.setText('Nom')
            self.form.setWindowModality(QtCore.Qt.ApplicationModal)
    #        self.form.finished.connect(self.on_close) #Se déclenche lorsque la fenêtre VisuCli se ferme
    #        self.form.open().connect(self.Remplir_ComboBox)
            self.Remplir_ComboBox()
     
        def on_open(self):
            print ("Ouverture de VisuArtiste")
            self.form.open()
     
     
        def Remplir_ComboBox(self):
            print ("Remplissage")
            self.ui.cBox_nomArtiste.clear()
            connexion = sqlite3.connect("Z:/Cinema.db")
            curseur = connexion.cursor()  # Récupération d'un curseur
            donnee = '"Alba"'
            cmdsql = "SELECT art_nom, art_prenom  FROM Artistes"
            print(cmdsql)
            curseur.execute(cmdsql)
            result = curseur.fetchall()
            nblig = len(result)
            print(nblig)
            i = 1
            while i < nblig:
                Prenom = result[i][0]
                nom = result[i][1]
                nomPrenom = Prenom + " " +  nom
                self.ui.cBox_nomArtiste.addItem(nomPrenom)
                i = i + 1
            connexion.close()  #Déconnexion
     
        def on_close(self):
            print ("Fermeture du programme")
            quit()
     
    # ----------------------------------------------------------------------------------------------------------------------
     
    if __name__ == '__main__':
     
        app = QApplication(sys.argv)
        ex = Main()
        ret = app.exec_()
        sys.exit(ret)
    Fic VisuCli.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    # -*- coding: utf-8 -*-
     
    # Form implementation generated from reading ui file 'VisuCli.ui'
    #
    # Created by: PyQt5 UI code generator 5.13.0
    #
    # WARNING! All changes made in this file will be lost!
     
     
    from PyQt5 import QtCore, QtGui, QtWidgets
     
     
    class Ui_Form_visucli(object):
        def setupUi(self, Form_visucli):
            Form_visucli.setObjectName("Form_visucli")
            Form_visucli.resize(1061, 294)
            font = QtGui.QFont()
            font.setPointSize(10)
            font.setBold(True)
            font.setWeight(75)
            Form_visucli.setFont(font)
            self.cBox_nomArtiste = QtWidgets.QComboBox(Form_visucli)
            self.cBox_nomArtiste.setGeometry(QtCore.QRect(10, 50, 161, 21))
            font = QtGui.QFont()
            font.setPointSize(10)
            font.setBold(True)
            font.setWeight(75)
            self.cBox_nomArtiste.setFont(font)
            self.cBox_nomArtiste.setObjectName("cBox_nomArtiste")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.cBox_nomArtiste.addItem("")
            self.label_nom = QtWidgets.QLabel(Form_visucli)
            self.label_nom.setGeometry(QtCore.QRect(250, 60, 71, 16))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setBold(True)
            font.setWeight(75)
            self.label_nom.setFont(font)
            self.label_nom.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.label_nom.setObjectName("label_nom")
            self.label_prenom = QtWidgets.QLabel(Form_visucli)
            self.label_prenom.setGeometry(QtCore.QRect(240, 90, 81, 16))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setBold(True)
            font.setWeight(75)
            self.label_prenom.setFont(font)
            self.label_prenom.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.label_prenom.setObjectName("label_prenom")
            self.label_adresse = QtWidgets.QLabel(Form_visucli)
            self.label_adresse.setGeometry(QtCore.QRect(230, 120, 91, 21))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setBold(True)
            font.setWeight(75)
            self.label_adresse.setFont(font)
            self.label_adresse.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.label_adresse.setObjectName("label_adresse")
            self.label_cdp = QtWidgets.QLabel(Form_visucli)
            self.label_cdp.setGeometry(QtCore.QRect(220, 150, 101, 16))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setBold(True)
            font.setWeight(75)
            self.label_cdp.setFont(font)
            self.label_cdp.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.label_cdp.setObjectName("label_cdp")
            self.label_ville = QtWidgets.QLabel(Form_visucli)
            self.label_ville.setGeometry(QtCore.QRect(210, 180, 111, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setBold(True)
            font.setWeight(75)
            self.label_ville.setFont(font)
            self.label_ville.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.label_ville.setObjectName("label_ville")
            self.LineEd_nom = QtWidgets.QLineEdit(Form_visucli)
            self.LineEd_nom.setGeometry(QtCore.QRect(360, 60, 113, 20))
            self.LineEd_nom.setObjectName("LineEd_nom")
            self.LineEd_Prenom = QtWidgets.QLineEdit(Form_visucli)
            self.LineEd_Prenom.setGeometry(QtCore.QRect(360, 90, 113, 20))
            self.LineEd_Prenom.setObjectName("LineEd_Prenom")
            self.LineEd_adresse = QtWidgets.QLineEdit(Form_visucli)
            self.LineEd_adresse.setGeometry(QtCore.QRect(360, 120, 113, 20))
            self.LineEd_adresse.setObjectName("LineEd_adresse")
            self.LineEd_ville = QtWidgets.QLineEdit(Form_visucli)
            self.LineEd_ville.setGeometry(QtCore.QRect(360, 180, 113, 20))
            self.LineEd_ville.setObjectName("LineEd_ville")
            self.tableWidget = QtWidgets.QTableWidget(Form_visucli)
            self.tableWidget.setGeometry(QtCore.QRect(580, 60, 321, 141))
            self.tableWidget.setObjectName("tableWidget")
            self.tableWidget.setColumnCount(3)
            self.tableWidget.setRowCount(0)
            item = QtWidgets.QTableWidgetItem()
            self.tableWidget.setHorizontalHeaderItem(0, item)
            item = QtWidgets.QTableWidgetItem()
            self.tableWidget.setHorizontalHeaderItem(1, item)
            item = QtWidgets.QTableWidgetItem()
            self.tableWidget.setHorizontalHeaderItem(2, item)
            self.cBox_genre = QtWidgets.QComboBox(Form_visucli)
            self.cBox_genre.setGeometry(QtCore.QRect(360, 150, 111, 21))
            font = QtGui.QFont()
            font.setPointSize(10)
            font.setBold(True)
            font.setWeight(75)
            self.cBox_genre.setFont(font)
            self.cBox_genre.setObjectName("cBox_genre")
            self.cBox_genre.addItem("")
            self.cBox_genre.addItem("")
     
            self.retranslateUi(Form_visucli)
            QtCore.QMetaObject.connectSlotsByName(Form_visucli)
     
        def retranslateUi(self, Form_visucli):
            _translate = QtCore.QCoreApplication.translate
            self.cBox_nomArtiste.setItemText(0, _translate("Form_visucli", "Charlise Theron"))
            self.cBox_nomArtiste.setItemText(1, _translate("Form_visucli", "Scarlett Johansson"))
            self.cBox_nomArtiste.setItemText(2, _translate("Form_visucli", "Megan Fox"))
            self.cBox_nomArtiste.setItemText(3, _translate("Form_visucli", "Jessica Alba"))
            self.cBox_nomArtiste.setItemText(4, _translate("Form_visucli", "Michelle Pfeiffer"))
            self.cBox_nomArtiste.setItemText(5, _translate("Form_visucli", "Cameron Diaz"))
            self.cBox_nomArtiste.setItemText(6, _translate("Form_visucli", "Jean Seberg"))
            self.cBox_nomArtiste.setItemText(7, _translate("Form_visucli", "Natalie Portman"))
            self.label_nom.setText(_translate("Form_visucli", "Nom"))
            self.label_prenom.setText(_translate("Form_visucli", "Prénom"))
            self.label_adresse.setText(_translate("Form_visucli", "Age"))
            self.label_cdp.setText(_translate("Form_visucli", "Genre"))
            self.label_ville.setText(_translate("Form_visucli", "Nationalité"))
            item = self.tableWidget.horizontalHeaderItem(0)
            item.setText(_translate("Form_visucli", "Films"))
            item = self.tableWidget.horizontalHeaderItem(1)
            item.setText(_translate("Form_visucli", "Genre"))
            item = self.tableWidget.horizontalHeaderItem(2)
            item.setText(_translate("Form_visucli", "Date sortie"))
            self.cBox_genre.setCurrentText(_translate("Form_visucli", "Homme"))
            self.cBox_genre.setItemText(0, _translate("Form_visucli", "Homme"))
            self.cBox_genre.setItemText(1, _translate("Form_visucli", "Femme"))

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    J'ai trouvé ceci qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        def init_dialog(self):
            self.form = QtWidgets.QDialog()
            self.ui = Ui_Form_visucli()
            self.ui.setupUi(self.form)
    
            #self.ui.LineEd_nom.setText('coucou')
            #self.ui.label_nom.setText('Nom')
            self.form.setWindowModality(QtCore.Qt.ApplicationModal)
            self.ui.cBox_nomArtiste.activated.connect(self.artSel)
            self.Remplir_ComboBox()
    
    
        def artSel(self):
            global ident_int
            print("un artiste a été selectionné")
            ...
    N’hésitez pas à corriger si ce n'est pas "propre"

Discussions similaires

  1. Comment créer une FAQ dans VB ?
    Par jlb59 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/07/2006, 08h05
  2. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46
  3. [9iR2][PL/SQL] Comment créer une vue dans un package ?
    Par mainecoon dans le forum Oracle
    Réponses: 6
    Dernier message: 22/02/2006, 08h10
  4. Comment créer une somme dans un état?
    Par ivan rung dans le forum Access
    Réponses: 6
    Dernier message: 20/01/2006, 07h56
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo