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 :

QComboBox et texte tronqué


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Par défaut QComboBox et texte tronqué
    Bonjour,

    J'ai réalisé une interface en python où figurent des listes déroulantes. Le code de l'une d'entre elle est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    E_typeAffaire = QtWidgets.QComboBox(saisie)
    E_typeAffaire.setGeometry(QtCore.QRect(718, 166, 113, 20))
    E_typeAffaire.setObjectName("E_typeAffaire")
     
    .....
    Lorsque j'affiche mon interface, les items présents dans le ComboBox sont tronqués, du style :

    Premi.... aire (au lieu de "Premier type d'affaire")

    Pour autant, je ne veux pas agrandir la largeur de ma Combobox, mais seulement la liste qui s'affiche dessous quand je clique dessus (c'est d'ailleurs le fonctionnement de la FontComboBox)

    Si vous avez une idée...

    Un grand merci à vous.

    Jmv

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Rajoute ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    E_typeAffaire.comboBox.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Par défaut
    Bonjour,

    Merci de votre retour. En fait, le code indiqué modifie la largeur du Combobox... qui du coup déborde sur le champ d'à coté. Ce que je voudrais, c'est que la largeur du combobox soit fixe et que la partie déroulante qui s'affiche dessous quand on clique dessus s'adapte à la largeur du plus grand contenu....

    exemple :

    ----------
    | Affaire |
    --------------------------
    | Type affaire Numéro 1 |
    | Type affaire Numéro 2 |
    | Type affaire Numéro 3 |
    | Type affaire Numéro 452 |
    --------------------------

    J'ai essayé de transformer une QCombobox en QlistView pensant trouver les fonctions adéquats mais je n'ai pas pour autant avancé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    E_typeAffaire = QtWidgets.QComboBox(saisie)
    E_typeAffaireList = QtWidgets.QListView(E_typeAffaire)
    E_typeAffaire.setView(E_typeAffaireList)
    #Remplissage typeaffaire à partir de la base de donnees
    cursor.execute("SELECT typeaffaire_paramtypeaffaire FROM paramtypeaffaire")
    result = cursor.fetchall()
    for i in result:
            record = i
            E_typeAffaire.addItem(str(record)[2:len(str(record))-3])        
    E_typeAffaire.setGeometry(QtCore.QRect(718, 166, 113, 20))
    E_typeAffaire.setObjectName("E_typeAffaire")
    E_typeAffaireList.setTextElideMode(QtCore.Qt.ElideNone)
    Si vous avez une idée.


    Merci

    JMV

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    C'est parce que setGeometry ne fixe pas les dimensions maximales.

    Essaye ceci:
    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
     
    import sys
    from PyQt5 import QtCore, QtGui, QtWidgets
     
    class CB(QtWidgets.QComboBox):
        def __init__(self):
            super().__init__()
            self.setMaximumSize(100, 30)
            self.addItems(["item-0", "item-long", "item-tres-long",
                            "item-tres-tres-long",
                            "item-tres-tres-tres-tres-tres-long"])
     
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        cb = CB()
        cb.show()
        sys.exit(app.exec_())

  5. #5
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Par défaut
    Merci de ce retour.

    Du coup cela fige bien la largeur du champ mais également celle de la liste déroulante du dessous qui tronque mon texte.

    En fait, je ne suis pas certain que l'on puisse avoir un combobox de 100 de large figé, qui affiche en dessous dans la liste déroulante des items dans leur totalité si ceux-là dépassent les 100 de largeur. ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Le code que je viens de donner fonctionne comme attendu sous Linux.

    Donc je ne vois pas le problème.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2007, 17h26
  2. APACHE : JOOMLA Sans images et texte tronqué
    Par ChrisColumbus dans le forum Apache
    Réponses: 2
    Dernier message: 01/12/2006, 11h42
  3. Contrôle texte tronqué
    Par wazodnuit dans le forum Access
    Réponses: 2
    Dernier message: 16/08/2006, 19h45
  4. Dlookup, texte tronqué
    Par jobal dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 15h24
  5. [JLabel] Problème de texte tronqué
    Par mister3957 dans le forum Composants
    Réponses: 3
    Dernier message: 06/08/2005, 11h12

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