Question

J'ai un QListView, où j'affiche des éléments à l'aide d'un délégué personnalisé avec peinture personnalisée. Dans chaque élément (c'est-à-dire chaque ligne de liste), je veux pouvoir afficher quelques "hyperliens" sur lesquels l'utilisateur pourrait cliquer et qui ferait ensuite appel sur certaines fonctions.

J'ai déjà essayé de vérifier la documentation officielle (par exemple Programmation modèle / vue) ainsi que beaucoup de recherches sur Google, mais n'ont pas pu comprendre comment y parvenir.

J'ai deux idées, chacune avec leurs propres problèmes:

  • Je pourrais les dessiner à l'aide de widgets enfants, comme un Qpushbutton plat. Comment puis-je positionner et afficher ces widgets?
  • Je pourrais également les dessiner comme chaînes de texte. Comment puis-je les rendre cliquables? Ou puis-je capturer des événements de clic sur le parent QlistView et déterminer en quelque sorte les coordonnées de celles-ci? Je pouvais ensuite faire correspondre les coordonnées de ces éléments cliquables et agir en conséquence.

Mon approche initiale était d'utiliser QListWidget avec .SetItemWidget (), où j'avais un widget approprié avec une mise en page et des widgets enfants. Malheureusement, c'était trop lent lorsque ma liste est passée à des centaines ou des milliers d'articles. C'est pourquoi j'ai changé pour QListView avec un délégué.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top