2015-04-14 1 views
2

J'ai cherché sur Internet comment dessiner ou rendre du texte sur QQuickItem mais en vain. J'opte pas pour utiliser QQuickPaintedItem qui utilise la fonction QPainter paint(). Mis à part cela, il y a aussi un problème connu de QQuickPaintedItem sur les appareils d'affichage rétine iOS où l'affichage est flou et les bords n'étaient pas nets.comment dessiner du texte dans QQuickItem

Veuillez nous indiquer s'il vous plaît possible tout au sujet de ceci.

Répondre

1

Depuis QtDeclarative a été désapprouvée déjà, je choisir de ne pas utiliser QQuickPaintedItem qui utilise la fonction

Cette déclaration peinture QPainter() ne fait pas beaucoup de sens. QtDeclarative est QtQuick1, QQuickPaintedItem fait partie du module QtQuick2 et n'a rien à voir avec QtDeclarative. En outre, même s'il utilise QPainter, il est encore accéléré matériellement en utilisant OpenGL.

Surcharger un QQuickItem personnalisé pour y dessiner du texte manuellement, sans l'aide de QPainter ou de toute autre classe similaire sera une tâche très complexe.

A QQuickItem est fondamentalement la classe derrière l'élément Item de QML. QML a également un élément Text. QML a été conçu pour le développement rapide de l'interface utilisateur, il est totalement inutile de dessiner le texte manuellement. Vous ne avez pas besoin de C++ pour cela, seulement QML:

Item { 
    Text { 
     text: "something" 
    } 
} 

Jetez un oeil à l'élément Text et ses propriétés, vous pouvez spécifier la police, la couleur et ainsi de suite. Vous pouvez également utiliser directement l'élément comme source d'effets graphiques.

+1

Désolé, pour la confusion sur la déclaration ci-dessus. Je sais déjà à propos de Text QML Type. Cependant, je voulais rendre le texte dans chaque nœud de géométrie personnalisé qui formait un seul QSGNode. Est-il possible de restituer un texte après la création du noeud de géométrie? La même chose avec le comportement de QPainter où vous pouvez dessiner un rectangle puis dessiner du texte dessus après. TIA. – matteoL

+0

Vous ne pouvez pas rendre de texte dans un noeud de géométrie. Quel que soit ce que vous essayez d'atteindre, je pense que vous allez dans le mauvais sens à ce sujet. Vous pouvez construire une géométrie pour le texte manuellement, et l'utiliser dans un nœud de géométrie, mais je dirais que c'est une très mauvaise idée. – dtech

+0

Merci @ddriver. Pouvez-vous donner des conseils et des conseils que dois-je faire pour dessiner ce [échantillon] (http://oi60.tinypic.com/2a61oxx.jpg) avec du texte à l'intérieur de chaque polygone. – matteoL