Comment voulez-vous des points de l'intrigue dans QT?
Je suis en train d'écrire une application en C++ avec QT où vous avez n points et calculer l'enveloppe convexe de cette. Cependant, une fois que c'est calculé, je n'ai aucune idée de la façon de tracer les points et tracer la frontière de la coque. Faire des boutons de menu et c'est assez simple, mais je ne suis pas sûr que je connais les outils pour ce faire.
Comment faites-vous cela?
- Double Possible de: Faire de la parcelle dans Qt (stackoverflow.com/questions/1491362/making-plot-in-qt)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement créer une classe dérivant de
QWidget
où vous remplacez lavoid paintEvent(QPaintEvent* event)
méthode. À vous de mettre les points dans une sorte de point de la liste, soitstd::vector<QPoint>
ouQList<QPoint>
et puis le peindre avec une Polyligne méthode. Par exemple:#include <QPainter>
en haut de la fiche). En aparté, il semblerait qu'il y a un en-tête de quelque part qui fournit de l'avant les déclarations de toutes les classes de Qt (c'est à direclass QPainter;
et autres) faisant le compilateur reconnaître qu'il existe une telle classe, mais ne rien savoir de plus et résultant en l'absence de message d'erreur.Vue Graphique,
addEllipse
QGraphicsView
n'2D tracé très bien et vous donne de nombreuses options pour la façon de les afficher. Il n'est pas adapté pour tracer les données scientifiques autant queqwt
, mais juste pour montrer un tas de points, ou de la géométrie ou des animations et beaucoup d'autres choses, il fonctionne très bien. Voir Qt La Vue Graphique Cadre la documentation et des exemples.Ici est de savoir comment vous tracez un tas de points dans un
QGraphicsScene
et l'afficher dans unQGraphicsView
.Remarque: Vous aurez probablement envie d'appeler
setSceneRect
sur votre point de vue, sinon la scène sera juste de l'auto-centrer. Lisez la description pourQGraphicsScene
etQGraphicsView
dans la Documentation de Qt. Vous pouvez l'échelle de la vue pour afficher plus ou moins de la scène et on peut mettre des barres de défilement dans. J'ai répondu à une relative question où je afficher plus au sujet de ce que vous pouvez faire avec unQGraphicsView
que vous souhaitez regarder aussi.Il y a une cartographie de la bibliothèque, qwt, qui fournit Qt widgets pour - mce - les fins de cartographie.
Graphiques Qt, QML ou GraphicsView
Que cela allait être une mise à jour de mon QGraphics Vue par exemple, mais c'obtenu le genre de long, et c'est vraiment une méthode complètement différente pour répondre à la question.
Qt Graphiques (LGPL disponible depuis 2016) est un excellent moyen de le faire sans avoir besoin d'un tiers de la bibliothèque.
https://doc.qt.io/qt-5/qlineseries.html#QLineSeries
Pour l'enveloppe convexe exemple plus précisément, vous voulez probablement le
QAreaSeries
graphique.https://doc.qt.io/qt-5/qtcharts-areachart-example.html
https://doc.qt.io/qt-5/qareaseries.html
Espère que ça aide.