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 :

Problème remplissage Combobox


Sujet :

PyQt Python

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut Problème remplissage Combobox
    Bonjour,

    J'alimente une Combobox de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for tools in idtools_rows:
                self.combobox_tool.addItem(tools[2])
    Mon problème est que lorsque mon GUI s'affiche, une valeur est déjà affichée, alors que je ne le voudrais pas...

    CI joint mon code complet:

    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
    import sys
    import sqlite3 as lite
    from PyQt5.QtWidgets import (QMainWindow, QApplication, QWidget, QTabWidget, QLabel, QFrame, QGridLayout, QComboBox, QLineEdit, QMenu, QAction)
    from PyQt5.QtGui import QIcon, QPixmap
    from PyQt5.QtCore import pyqtSlot, QSettings
    from PyQt5 import QtWidgets, QtGui
     
    class App(QMainWindow):
     
        def __init__(self):
            super().__init__()
            self.setFont(QtGui.QFont('Courier new', 10))
     
            settings=QSettings('ini/application.ini',QSettings.IniFormat);
            APPLICATION_NAME=settings.value("GLOBAL_PARAMETERS/APPLICATION_NAME")
            self.setWindowIcon(QIcon('ini/graph.ico'))
            self.setWindowTitle(APPLICATION_NAME)
     
            #Connexion to MySQL database
            print('Connexion to data base...')
            db_connexion=lite.connect('SQL/GMAO.db')
            Cursor=db_connexion.cursor()
            Cursor.execute("SELECT * FROM idtools")
            idtools_rows=Cursor.fetchall()
            #End of connexion
     
            menubar  = self.menuBar()
            fileMenu = menubar.addMenu('Gestion outillage')
     
            impMenu          = QMenu('Outillage', self)
            CreationTool     = QAction('Création', self)
            ModificationTool = QAction('Modification', self)
            DeleteTool       = QAction('Suppression', self)
     
            impMenu.addAction(CreationTool)
            impMenu.addAction(ModificationTool)
            impMenu.addAction(DeleteTool)
            newAct = QAction('Statistiques', self)        
     
            fileMenu.addAction(newAct)
            fileMenu.addMenu(impMenu) 
     
            BandeauPicture = QPixmap('ini/bandeau.jpg')
            self.bandeau   = QLabel(self)
            #self.bandeau.setFixedHeight(50)
            self.bandeau.setScaledContents(True)
            self.bandeau.setPixmap(BandeauPicture)
     
            self.LabelCombobox_tool = QLabel(self)
            self.LabelCombobox_tool.setText('Select a tool:')
     
            self.combobox_tool=QComboBox(self)
            self.combobox_tool.setFixedWidth(250)
            for tools in idtools_rows:
                self.combobox_tool.addItem(tools[2])
     
            # création d'un QTabWidget avec 2 onglets
            self.tabwidget = QTabWidget(self)
            self.tab1 = QWidget() # widget de l'onglet tab1
            self.tab2 = QWidget() # widget de l'onglet tab2
            self.tab3 = QWidget() # widget de l'onglet tab3
            self.tab4 = QWidget() # widget de l'onglet tab4
            self.tabwidget.addTab(self.tab1,"Saisir panne")
            self.tabwidget.addTab(self.tab2,"Saisir réparation")
            self.tabwidget.addTab(self.tab3,"Historique")
            self.tabwidget.addTab(self.tab4,"Administration")
     
            # Affichage d'un message sur la barre de status
            self.statusBar().showMessage("Message de status")
     
            # positionnement des widgets dans la fenêtre QMainWindow
            self.setCentralWidget(QFrame())
            layout = QGridLayout()
            layout.addWidget(self.bandeau, 0, 0) # bandeau en haut
            layout.addWidget(self.LabelCombobox_tool, 1, 0) # bandeau en haut
            layout.addWidget(self.combobox_tool, 2, 0) # bandeau en haut
            layout.addWidget(self.tabwidget, 3, 0) # QTabWidget en bas
            self.centralWidget().setLayout(layout)
     
        def toto():
            print('toto')
     
    if __name__ == '__main__':
            app = QApplication(sys.argv)
            app.setStyle('Fusion')
            ex = App()
            ex.showMaximized()
            sys.exit(app.exec_())

  2. #2
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    En spécifiant l'index courant avec un index négatif ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.combobox_tool.setCurrentIndex(-1)
    Testé, et chez moi ça fonctionne bien.
    Le temps ronge l'amour comme l'acide.

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Ce qu'on peut faire aussi, c'est de faire que la 1ère ligne affichée donne une instruction à l'utilisateur. Du genre: "Sélectionnez un pays".

    Mais, bien sûr, il faut ensuite traiter cette 1ère ligne comme n'étant pas un vrai choix.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. [XL-2013] Problème remplissage Combobox à partir d'un listview
    Par gaet76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2016, 09h32
  2. [XL-2007] Probléme remplissage d'une listbox et filtrage avec comboBox
    Par Nejjar_med dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/07/2013, 13h17
  3. problème remplissage combobox
    Par cecile38 dans le forum Flex
    Réponses: 18
    Dernier message: 05/05/2011, 08h59
  4. Problème remplissage combobox en jsf
    Par khadija74 dans le forum JSF
    Réponses: 0
    Dernier message: 05/01/2011, 17h27
  5. [ComboBox] problème remplissage
    Par samtheh dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2006, 10h58

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