J'ai un qlistwidget code> qui a de nombreux éléments ajoutés à celui-ci, mais je souhaite le
qlistwidget code> à faire défiler automatiquement jusqu'au dernier article à chaque fois qu'un nouvel élément est ajouté à celui-ci. .Is cela encore possible? P>
4 Réponses :
Essayez la méthode Scrollto héritée de qabstractItemView http://doc.qt.io /qt-5/qabstractItemView.html#scrollto p>
Cela ne fonctionnera pas pour l'article que vous venez d'ajouter. Ou plus précisément, cela ne fonctionnera pas de manière fiable. Souvent au moment où vous avez ajouté un nouvel article, la vue de liste ne connaît pas encore sa présence et ne peut donc pas faire défiler jusqu'à elle.
Pourriez-vous conditionnellement ScrollTobottom () code> uniquement s'il est actuellement en bas?
Vous pouvez vérifier que en accédant à la barre d'accueil de la barre de défilement: ScrollBar = myListView.verticalscrollbar (); Si (ScrollBar == Null || ScrollBar.Value () == ScrollBar.Maximum ()) {AddiTem (); myListView.scrolltobottom (); } else {additem (); } code> Nous vérifions ici si le barre de défilement existe du tout (juste pour être sûr), et s'il manque ou i> nous sommes déjà en bas, nous faisons défiler après l'ajout de l'article. Sinon, nous ajoutons simplement un article sans défilement.
Une autre solution possible serait d'utiliser le mécanisme Signal / Slot de Qt: via https://forum.qt.io/topic/1770/qlistwidget-auto-scroll/4 p> p>