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.
Partager