我是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.ui
和GraphicsView
在DisplayWidgets菜单下。但是我该如何使用它们?
答案 0 :(得分:2)
我没有CGAL经验,但我可以给你一些与Qt相关的提示:
使用QGraphicsView
+ QGraphicsScene
。如果需要,可以启用OpenGL支持,如下所示:
QGraphicsView view = new QGraphicsView(parentWindow);
view->setViewport(new QOpenGLWidget(view));
要绘制CGAL对象,您必须使用提供的图形项类(CGAL::Qt::TriangulationGraphicsItem
,CGAL::Qt::VoronoiGraphicsItem
,...)或从{派生自己的{1}}。要将项目添加到场景,请使用CGAL::Qt::GraphicsItem
方法。
要导航(平移+缩放)视图,CGAL会提供QGraphicsScene::addItem()
类。这是如何使用它:
CGAL::Qt::GraphicsViewNavigation