2010-06-14 6 views
0

J'ai sous-classé QGraphicsItem et la peinture réimplémentée.
En peinture, j'ai écrit quelque chose comme ça pour marquer l'élément:Confusion de coordonnées

painter->drawText("Test",10,40); 

Après un certain temps, je pense qu'il peut être utile pour gérer l'étiquetage avec l'article séparé. J'ai donc écrit quelque chose comme ça. Mais deux dessins "TEST" n'apparaissent pas au même endroit à l'écran. Je suppose que la différence peut être liée aux coordonnées de l'objet - coordonnées de la scène. J'ai essayé toutes les combinaisons mapFrom ... et mapTo ... à l'intérieur de l'interface QGraphicsItem mais pas de progression. Je veux que les dessins apparaissent au même endroit à l'écran.
Qu'est-ce qui me manque?

+0

Si la réponse est la solution ultime à ma question, je l'accepterai. Si la réponse est utile mais pas la solution ultime, je vais voter. – onurozcelik

Répondre

1

Je suppose que vous utilisez la même taille de police et le même type dans les deux cas. Si la différence de position est très petite, la raison peut être que QGraphicTextItem utilise un padding pour le texte qu'il contient. J'essayerais d'utiliser QGraphicsSimpleTextItem qui ne va pas ajouter des trucs fantaisie en interne et voir si vous avez toujours le même problème. Le système de coordonnées est le même si vous utilisez peintre ou setPost, ce qui n'est pas le problème. Si cela n'aide pas, je suggérerai de spécifier le même rect pour les deux afin d'éviter que Qt ne possède des espaces de séparation.