J'essaye de créer un échiquier. Toutes les pièces sont transparentes et le tableau ne l'est pas. Lorsque j'ai essayé d'obtenir l'élément cliqué en utilisant la fonction 'itemAt', il renvoyait toujours l'élément backGround (c'est-à-dire le tableau). Je soupçonne que du fait que les pièces sont transparentes, elles ne sont pas sélectionnées.qt - Dans QGraphicsScene je ne peux pas obtenir le bon article
4
A
Répondre
2
J'ai eu la réponse. J'ai essayé d'obtenir le event->pos()
. Cela retournera le clic de souris dans les coordonnées de QGraphicsItem
. Donc, je devrais utiliser event->scenePos()
.
Maintenant, je le reçois correctement.
1
Si vous utilisez votre propre coutume QGraphicsItem
alors vous devrez peut-être passer outre shape()
,
Si c'est une QGraphicsPixmapItem
simple et il a un masque alpha, alors vous devez appeler setShapeMode()
.
Questions connexes
- 1. jQuery draggable - Je ne peux pas faire glisser mon article
- 2. Qt QGraphicsScene copy
- 3. mouseMoveEvent ne fonctionne pas dans QGraphicsScene
- 4. Qt: QGraphicsScene ne pas mettre à jour quand je m'attendais à
- 5. je ne peux pas obtenir variable dans la fonction
- 6. Je ne peux pas construire Pythonqt
- 7. Je ne peux pas créer un nouvel article et modifier des articles dans Joomla
- 8. Je ne peux pas obtenir surChanger pour déclencher dijit.form.Select
- 9. Je ne peux pas obtenir Domain.count() méthode statique pour travailler
- 10. Je ne peux pas obtenir live() pour agir comme hover()
- 11. Je ne peux pas obtenir RedirectToAction pour fonctionner
- 12. qt - Dans QGraphicsScene comment attraper un élément particulier
- 13. Pourquoi je ne peux pas obtenir l'identifiant d'un élément - Jquery
- 14. Je ne peux pas comprendre le bug dans cette jQuery
- 15. pourquoi ne peux pas je le fais dans js
- 16. Je ne peux pas mettre stdout à mettre à jour dans Qt
- 17. C# - Je sais que je peux le faire dans LINQ, mais je ne peux pas le faire fonctionner
- 18. Pourquoi je ne peux pas INSERT INTO?
- 19. jQuery Dialog Mais je ne peux pas modifier le CSS
- 20. Je ne peux pas obtenir d'ouvrir le fichier WSDL dans Eclipse J2EE Galileo
- 21. Je ne peux pas obtenir le texte d'un élément sélectionné dans une listeview ... pleeeeasss help
- 22. Je ne peux pas obtenir cette image dans le fond de mon div
- 23. Le fichier est occupé. Je ne peux pas le supprimer
- 24. Problème avec une mise en page Qt, je ne peux pas supprimer un espace
- 25. Pourquoi je ne peux pas appeler packagename.modulename.foo()?
- 26. Je ne peux pas fermer la UIAlertView
- 27. Je ne peux pas utiliser imagecopyresized
- 28. Je ne peux pas comprendre ce qui ne va pas
- 29. CodeIgniter: Je ne peux pas me connecter
- 30. Pourquoi je ne peux pas obtenir le cadre d'un UIView afin de le déplacer?
Lorsque vous dites que les éléments sont transparents, voulez-vous dire qu'ils ne sont pas visibles (c'est-à-dire que QWidget.isVisible() renvoie false)? itemAt() renvoie uniquement les éléments visibles. Il renvoie également l'élément le plus haut. Essayez les éléments (const QPointF & pos) pour obtenir tous les éléments à un point indépendamment de l'ordre z. –