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

Qt Discussion :

[QTreeWidget] Problème d'emplacement des widgets lorsqu'on fait défiler


Sujet :

Qt

  1. #1
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut [QTreeWidget] Problème d'emplacement des widgets lorsqu'on fait défiler
    Bonjour,

    Voilà depuis quelques jours j'ai quelques soucis avec mon QTreeWidget. J'ai inséré divers widgets via setItemWidget(), et jusque la tout va bien. Le soucis arrive lorsque je commence à jouer avec la scrollbar : les widgets ne sont pas rafraichit, ils disparaissent et des artefacts visuels apparaissent, sous forme de trainée, ou alors ne sont pas affichés sur la bonne abscisse. Le seul moyen d'obtenir un rafraichissement correct et que les widgets retrouvent leur place, est d'ouvrir ou de fermer manuellement un QTreeWidgetItem (en anglais "expand" ou "collapse"). Après cette action, l'ensemble des widgets (qu'ils soient attachés à ce QTreeWidgetItem ou un autre) retrouvent leur place originale.

    J'ai tenté plusieurs "patchs" pour pallier au soucis, comme actualiser l'affichage du QTreeWidget avec repaint, update périodiquement. De même pour les widgets contenus. Et aussi sur la viewport() du widget, mais rien n'y fait. J'ai commencé à me balader dans le code source de Qt pour savoir comment était effectué le rafraichissement lors d'un expand ou collapse, mais je n'ai pas mit le doigt dessus encore.

    Je vous link un petit dessin qui illustre bien mon problème :



    Edit : pour info le QTreeWidget est embarqué dans un QGraphicsProxyWidget, lui même appartenant à un QGraphicsScene... ce qui pourrait également expliquer mon problème.

  2. #2
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut
    J'ai finit pas trouver, j'ai résolu le soucis en appelant explicitement updateGeometries(), pour l'instant périodiquement mais je vais le déplacer pour qu'il s’exécute uniquement sur un événement de scrolling.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/03/2014, 18h38
  2. Problème positionnement des widgets
    Par fahmi.bedoui dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 22/07/2011, 17h30
  3. Problème de placement des widgets dans un layout
    Par maroua_mm dans le forum Qt
    Réponses: 1
    Dernier message: 20/08/2009, 15h16
  4. QTabWidget - Problème d'affichage des widgets
    Par jimaitou dans le forum Débuter
    Réponses: 7
    Dernier message: 22/03/2009, 02h55
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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