首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt Ros工作空间中的QVTKWidget问题

Qt Ros工作空间中的QVTKWidget问题
EN

Stack Overflow用户
提问于 2019-04-09 15:21:55
回答 1查看 62关注 0票数 1

我是Qt和ROS的新手。我正在开发Qt Creator 4.8.0。我已经在Qt中创建了一个catkin工作空间,并创建了一个mainwindow。我正在尝试将QVTKWidget添加到mainwindow中。它已成功构建,但在运行时,会显示一条错误消息。

代码:mainwindow.cpp

代码语言:javascript
复制
vtkWidget = new QVTKWidget;
ui.verticalLayout->addWidget(vtkWidget);
ui.verticalLayout->update();
ren = vtkRenderer::New();
vtkWidget->GetRenderWindow()->AddRenderer(ren);
ren->SetBackground(1.0,0,0);
ren->Render();
代码语言:javascript
复制
Error:realloc(): invalid pointer: 0x00007facb5723820 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7facb37d77e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x85d80)[0x7facb37e5d80]
/lib/x86_64-linux-gnu/libc.so.6(realloc+0x22f)[0x7facb37e48ef]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN9QListData7reallocEi+0x1f)[0x7facada009cf]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN9QListData6appendEi+0x81)[0x7facada00aa1]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x1d6d78)[0x7facadaccd78]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_Z21qRegisterResourceDataiPKhS0_S0_+0x2e6)[0x7facadac8b16]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x7bcc3)[0x7facad971cc3]
/lib64/ld-linux-x86-64.so.2(+0x106ba)[0x7facb6c5a6ba]
/lib64/ld-linux-x86-64.so.2(+0x107cb)[0x7facb6c5a7cb]
/lib64/ld-linux-x86-64.so.2(+0xc6a)[0x7facb6c4ac6a]
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 15:54:48

在对vtkWidget->GetRenderWindow()调用AddRenderer之前,应该检查它是否返回有效的指针,而不是

代码语言:javascript
复制
vtkWidget->GetRenderWindow()->AddRenderer(ren);

试一试

代码语言:javascript
复制
vtkRenderWindow * window = vtkWidget->GetRenderWindow();
if(window != nullptr)
{
     window->AddRenderer(ren);
     //etc.

同样的检查也应该应用于vtkRenderer

代码语言:javascript
复制
ren = vtkRenderer::New();
if(ren != nullptr)
{
    //etc.

如果你碰巧发现了一些空指针,看看this post是否有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55587169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档