Графика, addEllipse
QGraphicsView
очень хорошо работает с 2D-графикой и дает вам много возможностей для ее отображения. Он не настолько приспособлен для построения научных данных, как qwt
, но просто для отображения набора точек, геометрии, анимации и многих других вещей, он работает очень хорошо. См. Документацию и примеры Qt's Graphics View Framework .
Вот как вы строите группу точек в QGraphicsScene
и показываете ее в QGraphicsView
.
#include <QtGui/QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QPointF>
#include <QVector>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QVector <QPointF> points;
// Fill in points with n number of points
for(int i = 0; i< 100; i++)
points.append(QPointF(i*5, i*5));
// Create a view, put a scene in it and add tiny circles
// in the scene
QGraphicsView * view = new QGraphicsView();
QGraphicsScene * scene = new QGraphicsScene();
view->setScene(scene);
for(int i = 0; i< points.size(); i++)
scene->addEllipse(points[i].x(), points[i].y(), 1, 1);
// Show the view
view->show();
// or add the view to the layout inside another widget
return a.exec();
}
Примечание: вы, вероятно, захотите вызвать setSceneRect
на вашем виде, в противном случае сцена просто автоматически отцентрирует его. Прочитайте описания для QGraphicsScene
и QGraphicsView
в документации Qt. Вы можете масштабировать вид, чтобы показать более или менее сцену, и в него можно поместить полосы прокрутки. Я ответил на связанный вопрос , где я показываю больше о том, что вы можете сделать с QGraphicsView
, который вам может понадобиться смотреть также.