Qt中的PCL addLine使应用程序崩溃
PCL addLine in Qt crashes application
我正在Qt中构建PCL查看器,并已成功复制PCL站点上的演示应用程序(http://pointclouds.org/documentation/tutorials/qt_visualizer.php)
我构建了vtk 5.8来生成qvtkWidget。
该演示构建和运行良好,所有控件都能正常工作,点都画得很好。现在我需要画其他项目,球体,线条等
我使用查看器->addLine()函数。。。在Visual Studio中,它运行良好。然而,在Qt(4.8.5)中,每当我尝试做任何其他事情时,它都会杀死程序!
QT中的应用程序输出窗口报告以下
正在启动C:\xxx\build\release\pltest.exe。。。程序意外地完成了。C: \xxx\build\release\pltest.exe崩溃的
唯一有效的功能是
addPointCloud()
removePointCloud()
以下所有原因导致崩溃
setBackgroundColor()
addCoordinateSystem()
addLine()
addSphere()
有什么想法吗。。。?
从Qt可视化工具教程代码开始;
在UI(pushButton_sphere
)中添加一个新按钮,然后将信号连接到一个新的成员功能:
connect (ui->pushButton_sphere, SIGNAL (clicked ()), this, SLOT (sphereButtonPressed ()));
成员函数应该如下所示:
void
PCLViewer::sphereButtonPressed ()
{
printf ("Sphere button was pressedn");
viewer->addSphere(pcl::PointXYZ(0, 0, 0), 1.0);
viewer->addLine(pcl::PointXYZ(2, 0, 0), pcl::PointXYZ(1, 1, 1));
viewer->addCube(Eigen::Vector3f(2, 0, 0), Eigen::Quaternionf::Identity(), 1, 1, 1);
viewer->setBackgroundColor(.2, 0, 0);
ui->qvtkWidget->update();
}
我已经在Ubuntu 14.04+PCL 1.7.2(来自PPA)+VTK 5.8上测试了线条、球体、立方体和背景颜色。如果该代码崩溃,它可能是特定于平台的,所以请调试并填充PCL跟踪器上的错误。
我遇到了完全相同的问题。
从我迄今为止所做的实验来看,如果您在创建PCLVisualizer后立即尝试添加多个元素,那么应用程序就会崩溃。
在示例应用程序中,只有在用户按下按钮后才添加附加元素。这意味着在创建和添加元素之间存在时间延迟,但Qt应用程序也有能力处理事件队列上的其他事件。
我还没有弄清楚这一点,但我的猜测是,在创建观察器后,在观察器上调用update()会导致一些事件被放在事件队列中。在处理这些内容之前尝试添加更多内容会导致崩溃。
问题是在我的代码中,我需要立即开始添加东西,而且我没有机制来确定什么时候这样做是安全的。
确保VTK安装路径已放入全局环境中。由于QT找不到它,它可能会崩溃。
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- 操纵安卓相机的深度图导致应用程序崩溃
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- QCompleter set模型使应用程序崩溃
- Qt 5 应用程序崩溃并出现"qLineEdit::setText"
- 切换NvAPI_Stereo_Deactivate/NvAPI_Stereo_activate会使unity应用程序崩溃
- eglSwapBuffers上的应用程序崩溃
- VLD 使应用程序崩溃
- 由于调用 std::condition_variable 后参数无效而导致应用程序崩溃
- 执行递归函数时 C++ 应用程序崩溃
- 在 C++/CLI/C# 项目中启用"Native Code Debugging"导致应用程序崩溃
- LOCAL_SHARED_LIBRARIES使我的应用程序崩溃
- 为什么使用 nullPtr 调用函数不会使我的应用程序崩溃
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- React 本机 0.59 应用程序崩溃并出现 libc 错误
- 当使用“制造”编译的程序中使用库时,应用程序崩溃
- 如何在导致应用程序崩溃的代码中修复指令
- C++多线程应用程序崩溃
- 当使用 /ENTRY:main 和 /MT 运行时库编译为 /SUBSYSTEM:WINDOWS 时,应用程序崩溃