Question

Disons que j'ai besoin d'afficher une liste d'éléments.Chaque élément contient un QPushButton une image et du texte.Lorsqu'un utilisateur clique sur le bouton quelque chose devait se produire ( c'est à dire j'ai besoin d'obtenir le signal ).Quelle est la bonne façon de mettre en œuvre ce dans Qt?

Après un peu de lecture, je comprends que si j'utilise un QListWidget et QListWidgetItem, cela peut être réalisé.Je peux sous-classe chaque QListWidgetItem en fonction de mes besoins et de les mettre dans la liste de widget.

Cependant, j'ai lu aussi qu'une approche plus appropriée ( le Modèle de Vue de l'approche ) est d'utiliser un QlistView couplé avec un QItemDelegate.Mais si je suis en utilisant QItemDelegate, il semble que je ne peux peindre les widgets.Comment puis-je obtenir le bouton-poussoir de l'événement?

Désolé pour cette énorme post.Je suis un peu confus au sujet de l'ensemble du concept de cas d'utilisation d'un QListWidget / QListView.

Était-ce utile?

La solution

QListWidget est essentiellement une version personnalisée de QListView, conçu pour le cas standard de la liste des widgets, quand tout ce que vous faites est juste la présentation de l'image ou des éléments de texte dans une liste et de la relation avec le modèle sous-jacent est simple.

Avec QListWidget et de ses associés de classe QListWidgetItem vous pouvez, par exemple,insérer et supprimer des éléments très facilement.Mais si vous êtes de l'insertion QPushButtons, alors vous ne pouvez pas utiliser cette de sorte que vous pourriez aussi bien utiliser QListView et son (hérité) méthodes pour paramétrer le widget pour un indice donné.

Comme pour le signal, car vous serez de la création de la QPushButtons, il suffit d'utiliser

QObject::connect(my_button, SIGNAL(clicked()),...) 

pour faire face à cela.

Autres conseils

Diffèrent de Matt réponse, il semble que vous pouvez utiliser votre propre widget sur un QListWidgetItem, comme précisé dans ce post sur qt-project.org: http://qt-project.org/forums/viewthread/17953.

Cela peut être utile si vous n'avez que quelques éléments à afficher et ne sont pas intéressés à la peine de cuisson d'une classe de modèle.

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