vtkOrientationMarkerWidget在QVTKWidget不显示
vtk吧
全部回复
仅看楼主
level 2
左下角那个坐标系,代码如下:
vtkSmartPointer<vtkAxesActor> axes = vtkSmartPointer<vtkAxesActor>::New();
vtkSmartPointer<vtkOrientationMarkerWidget> widget = vtkSmartPointer<vtkOrientationMarkerWidget>::New();
widget->SetOutlineColor(0.9300, 0.5700, 0.1300);
widget->SetOrientationMarker(axes);
widget->SetInteractor(iren);
widget->SetEnabled(true);
widget->InteractiveOn();
在控制台通过vtkRenderWindowInteractor交互可以显示出来。
但是在QVTKWidget中,代码调整如下:
widget->SetInteractor(widget_vtk->GetInteractor());
它并不显示。我用的vtk版本是vtk8.2.0。
有没有哪位大神做的可以用,指点一下思路,万分感谢!
2020年06月02日 05点06分 1
level 1
vtkSmartPointer<vtkAxesActor> actor2 = vtkSmartPointer<vtkAxesActor>::New();
publicwidget = vtkSmartPointer<vtkOrientationMarkerWidget>::New();
publicwidget->SetOutlineColor(0.9300, 0.5700, 0.1300);
publicwidget->SetOrientationMarker(actor2);
publicwidget->SetInteractor(ui.ThreeDim_widget->GetInteractor());
publicwidget->SetViewport(0.0, 0.0, 0.2, 0.2);
publicwidget->SetEnabled(true);
publicwidget->InteractiveOn();
2020年06月06日 07点06分 2
交互器应该是ui.qvtkwidget->GetInteractor()吧
2020年06月06日 07点06分
首先感谢你的帮助。我的widget_vtk也就是你的qvtkwidget,效果一样的。我今天才找到问题,问题出在了智能指针上,它创建后又自动注销了,不用智能指针就可以了。
2020年06月09日 02点06分
我用的不是智能指针啊,怎么还是在vtkPixelBufferObject::Upload3D里面挂了?
2020年08月10日 06点08分
我用的是PCL 1.8.1的,配置vtk8.0
2020年08月10日 06点08分
level 5
vtkSmartPointer<vtkOrientationMarkerWidget> widget = vtkSmartPointer<vtkOrientationMarkerWidget>::New();
改成
vtkOrientationMarkerWidget * widget = vtkOrientationMarkerWidget::New();
2020年09月02日 07点09分 3
太感谢了,卡了我好久的一个问题,终于解决了!
2022年01月26日 06点01分
给力嗷[真棒]
2022年11月09日 09点11分
[真棒]问题解决了!
2023年02月11日 06点02分
真的牛逼
2024年04月28日 02点04分
level 1
请问下,这中3D点云渲染是怎么处理的?
2021年03月03日 03点03分 4
level 1
在main函数外面添加一句话:
VTK_MODULE_INIT(vtkRenderingFreeType);
为了防止其他另外两个错误,还要添加两句话:
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
所以最后的样子是这样的:
#include "PointCloudODP.h"
#include <QtWidgets/QApplication>
#include <QtWidgets/QApplication>
#include <QMainWindow>
#include <vtkAutoInit.h>
#include <vtkOutputWindow.h>
#include <chrono>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);
int main(int argc, char *argv[])
{
std::srand(static_cast<int>(std::time(NULL)));
vtkOutputWindow::SetGlobalWarningDisplay(0);
QApplication a(argc, argv);
PointCloudODP w;
w.show();
a.exec();//用来响应qt事件和消息
}
2021年05月18日 20点05分 5
主要是this->orientationMarkerWidget->SetEnabled(true);这一句在作怪,需要用VTK_MODULE_INIT(vtkRenderingFreeType);这句话解决这个问题。
2021年05月18日 20点05分
vtkOrientationMarkerWidget vtkAxesActor qt中报异常
2021年05月18日 20点05分
level 1
请问你解决了么,遇到了同样的问题
2021年07月25日 14点07分 6
1