在Qt中以交互方式渲染点,线,段

时间:2016-03-29 16:26:39

标签: c++ qt qt-creator

我是Qt的新手,我想使用Qt使用CGAL制作交互式几何程序。我希望用户输入,比如说点,段,使用鼠标然后按一个按钮来获得一个处理输入的CGAL算法。

我的环境在 Ubuntu 14.04计算机上 CGAL 4.5,Qt 5.6 QtCreator 3.6.1

CGAL内置了对其对象的支持 使用QtGraphicsViewFramework(http://doc.cgal.org/latest/GraphicsView/index.html

进行渲染

我不知道如何将CGAL对象(点,线,光线,多边形)渲染到Qt窗口。我上面链接的页面假定知道Qt以使应用程序正常工作,因此对Qt初学者没有帮助。

到目前为止,我已经使用QtCreator创建了一个Qt小部件应用程序项目。据我所知,我需要在QtCreator中以图形方式修改DataGridViewColumn column = dataGridView.Columns[indexForYourColumn]; DataGridViewCell cell = new YourCustomDataGridViewCell(); column.CellTemplate = cell; 文件,方法是将不同类型的小部件拖放到其上,然后将调用CGAL函数的信号映射到任何绘图画布小部件的插槽中。 (这是正确的吗?我对信号和插槽机制感到不稳定)

我的问题 ....我将哪个小部件作为绘图画布放在窗口上?两个相关的小部件似乎是mainwindow.uiGraphicsView 在DisplayWidgets菜单下。但是我该如何使用它们?

1 个答案:

答案 0 :(得分:2)

我没有CGAL经验,但我可以给你一些与Qt相关的提示:

  1. 使用QGraphicsView + QGraphicsScene。如果需要,可以启用OpenGL支持,如下所示:

    QGraphicsView view = new QGraphicsView(parentWindow);
    view->setViewport(new QOpenGLWidget(view));
    
  2. 要绘制CGAL对象,您必须使用提供的图形项类CGAL::Qt::TriangulationGraphicsItemCGAL::Qt::VoronoiGraphicsItem,...)或从{派生自己的{1}}。要将项目添加到场景,请使用CGAL::Qt::GraphicsItem方法。

  3. 要导航(平移+缩放)视图,CGAL会提供QGraphicsScene::addItem()类。这是如何使用它:

    CGAL::Qt::GraphicsViewNavigation