Bonjour à tous
C'est souvent avec les choses simples que l'on a du mal...
Quelqu'un sait comment dessiner une simple ligne en QML ?
Bonjour à tous
C'est souvent avec les choses simples que l'on a du mal...
Quelqu'un sait comment dessiner une simple ligne en QML ?
Une ligne droite ? Un rectangle d'épaisseur 1 ?
en règle général (oui, on peut créer un rectangle d'épaisseur 1 puis faire une rotation pour le mettre comme on veut... c'est pas propre)
Qt Quick étant très jeune, y'a pas énormément de composants complexes et de possibilités, l'argument étant qu'on peut les développer en C++. Après je ne connais pas assez pour te dire s'il y a mieux...
Bonjour,
Je confirme ce que dit Troudhyl. Cependant, rares sont les cas où on a besoin de dessiner une simple ligne dans une interface graphique. Si c'est pour réaliser un séparateur, un rectangle d'épaisseur 1 correspond et peut être utilisé. Dans un sens, c'est d'ailleurs plus logique vu qu'une ligne n'a en théorie pas d'épaisseur. Après, on a la solution du paint() d'une classe C++ héritant de QDeclarativeItem. S'il s'agit vraiment de faire du dessin de formes classiques, il pourrait être intéressant d'utiliser ceci : http://qt.gitorious.org/qt-labs/qmlcanvas.
Bonne journée,
Amnell.
N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !
Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels
Pour ceux qui ont la flemme, en pur QML, quelque chose comme ça :
(Ce n'est pas propre? )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Rectangle { objectName: "basicLine" property int x_start : 0 property int y_start : 0 property int x_end : 0 property int y_end : 0 x: x_start y: y_start width: Math.sqrt ( (x_end - x_start) * (x_end - x_start) + (y_end - y_start) * (y_end - y_start) ) height: 1 rotation: Math.atan2 (y_end - y_start, x_end - x_start) / Math.PI * 180 transformOrigin: Item.TopLeft }
Je me suis déjà posé la question aussi (sans chercher la réponse :p)
J'ai l'impression que qml est encore assez pauvre de ce côté. Dessiner une ligne, un triangle ou un autre polygone peut paraître assez compliqué :p
En Qt4: QML 1.0, on pourrait faire un QDeclarativeItem et dessiner avec QPainter, donc là on fait assez facilement tout ce qu'on veut.
L'équivalent Qt5 est possible, mais il faut connaitre et comprendre le nouveau scenegraph, puis je pense dessiner avec des directives openGL...
Il y aurait petre moyen de faire un module annexe pour Qt5 avec toute une série de formes, composant de dessin, ça pourrait être sympa.
En fait, dans Qt Quick 2, plus de problème. Il y a un nouvel élément Canvas, équivalent à canvas du HTML 5, qui permet de dessiner en 2D comme dans QPainter.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager