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 :

QListView.IconMode : cadrage du texte et de l'icône


Sujet :

PyQt Python

  1. #1
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut QListView.IconMode : cadrage du texte et de l'icône
    bonjour à toutes et à tous,
    petit explorateur de fichiers avec QListView pyqt5 sous Fedora:
    Nom : ce.jpg
Affichages : 731
Taille : 23,0 Ko
    peut-on cadrer comme on l'entend icônes et textes
    tel que, ici, le texte passe à la ligne et l'icône est centrée
    j'aimerais soit les 2 sur la même ligne, soit l'icône cadrée
    elle aussi à gauche, ( ou autres.. )
    pour l'instant j'use de
    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
     
    class lstView(QListView): ...
            super(lstView, self).__init__(parent)
            self.qdm=QFileSystemModel(self)
            self.qdm.setFilter(QDir.NoDot|QDir.AllEntries|QDir.System|QDir.Hidden)
            self.setModel(self.qdm)
            self.adjustSize()
            self.setSelectionMode(QAbstractItemView.ExtendedSelection)
            self.Flow(QListView.LeftToRight)
            self.setLayoutMode(QListView.Batched)
            self.setMovement(QListView.Static)
            self.setViewMode(QListView.IconMode)
            self.setResizeMode(QListView.Adjust)
            self.setSpacing(8)
            self.setFlow(QListView.TopToBottom)
            self.setWordWrap(True)
            self.setWrapping(True)
    comme par exemple :
    Nom : ce.jpg
Affichages : 711
Taille : 18,6 Ko
    mais définir self.setGridSize(QSize(largeur,hauteur)
    tronque le texte...
    j'ai tenté plein de choses, mais je n'y parviens pas

    merci d'avance.

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    L'alignement du texte est défini avec les QListWidgetItem mais comme tu utilises un QListView avec un modèle pret-à-l'emploi, je ne vois pas comment tu peux accéder aux items.

    Par contre, sur ta capture, les items n'ont pas l'air alignés. Essaye avec self.setFlow(QListView.LeftToRight)

    Et au passage, supprime self.Flow(QListView.LeftToRight) qui n'a aucun usage.

  3. #3
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    self.setFlow(QListView.LeftToRight)
    fait que la liste est verticale au lieu d'être horizontale,
    mais le "souci" d'affichage reste le même. j'avais tenté.
    supprime self.Flow(QListView.LeftToRigh)
    vrai qu'il ne semble pas avoir d'effets notables.
    comme tu utilises un QListView avec un modèle pret-à-l'emploi, je ne vois pas comment tu peux accéder aux items
    on pourrait donc en créant son "propre modèle" ?
    si oui, une piste c'est possible ?
    merci de ton intervention.

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Dans cet exemple j'ai un flow LeftToRight et les items sont donc dans l'ordre horizontal, le deuxième est à droite du premier et non pas en-dessous.

    Mais c'était juste pour voir si l'alignement serait plus propre.

    Pour ce qui est de créer soi-même son modèle ça risque d'être beaucoup de travail, or ce que tu montres ne semble pas moins bien que la plupart des navigateurs de fichiers qu'on trouve dans la nature.

  5. #5
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par VinsS Voir le message
    créer son modèle risque d'être beaucoup de travail **
    bon... ben dommage.
    avec gtk on y parvient "sans rien faire" ( c'est l'exemple que je postais ),
    mais d'autres problèmes y surviennent ( surveillance modif répertoires ... )
    encore merci de ton aide.

    ** on en fait toujours trop pour ce qu'on est payé

Discussions similaires

  1. [Débutant] Tracer un cadrage pour un texte
    Par slaima15 dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/06/2013, 23h51
  2. QListView, texte riche ?
    Par ymoreau dans le forum Qt
    Réponses: 1
    Dernier message: 13/10/2010, 11h25
  3. wxListView : texte à droite de l'icône
    Par vikki dans le forum wxWidgets
    Réponses: 4
    Dernier message: 24/03/2009, 10h16
  4. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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