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.
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
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
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