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 })
Partager