c++ - Linux 上的 QT、VTK 项目未运行

标签 c++ linux qt vtk itk

我正在尝试使用 Qt 启动一个 ITK/VTQ 项目。该项目在 Windows 10 上运行,但不在 Ubuntu 上运行。

我在启动项目时出现以下错误:

X Error: BadColor (invalid Colormap parameter) 12
  Major opcode: 1 (X_CreateWindow)
  Resource id:  0x4a00001
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 3 (X_GetWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 7 (X_ReparentWindow)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 10 (X_UnmapWindow)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 12 (X_ConfigureWindow)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 8 (X_MapWindow)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 8 (X_MapWindow)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 2 (X_ChangeWindowAttributes)
  Resource id:  0x480001a
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 3 (X_GetWindowAttributes)
  Resource id:  0x480001a
Erreur de segmentation (core dumped)

这是我的代码:

void ImageViewerWidget::InitRender()
{

/*** INITIALIZATION ***/

// init the actor
m_texturedQuad = vtkSmartPointer<vtkActor>::New();
_openGLproperty = static_cast<vtkOpenGLProperty*>(m_texturedQuad->GetProperty());

// init the quad
_quadPolyData = vtkSmartPointer<vtkPolyData>::New();


// create the texture object
_textureCoordinates = vtkSmartPointer<vtkFloatArray>::New();
_textureCoordinates->SetNumberOfComponents(3);
_textureCoordinates->SetName("TextureCoordinates");

float tuple[3] = {0.0, 0.0, 0.0};
_textureCoordinates->InsertNextTuple(tuple);
tuple[0] = 1.0; tuple[1] = 0.0; tuple[2] = 0.0;
_textureCoordinates->InsertNextTuple(tuple);
tuple[0] = 1.0; tuple[1] = 1.0; tuple[2] = 0.0;
_textureCoordinates->InsertNextTuple(tuple);
tuple[0] = 0.0; tuple[1] = 1.0; tuple[2] = 0.0;
_textureCoordinates->InsertNextTuple(tuple);


// create the itk/vtk converter
m_itkToVtkConverter = itk::ImageToVTKImageFilter<itk::Image<float, 3> >::New();


/*** Init the Renderer ***/
m_imageRenderer = vtkSmartPointer<vtkRenderer>::New();
m_imageRenderer->SetBackground(1,1,1); // Background color white
m_imageRenderer->ResetCamera();


/*** Init the Render Window ***/
m_imageRenderWindow = vtkSmartPointer<vtkRenderWindow>::New();
m_imageRenderWindow->AddRenderer(m_imageRenderer);


/*** Init the Shader ***/
SetActiveShader("BasicShader");


/*** Set Render Window to viewer ***/
// FIXME: the software crashes here on GNU/Linux
viewer->SetRenderWindow(m_imageRenderWindow);

}

我发现问题出在这里:

viewer->SetRenderWindow(m_imageRenderWindow);

如何更正此错误消息?

问题出在哪里?

最佳答案

你的大部分代码(_textureCoordinates 和上面的东西)没有连接到其余部分。你在这里展示的不是一个可运行的例子,但看起来你没有正确设置 VTK(与 VTK hello world 比较)。

您是否尝试查看 examples 中的一些内容?在 VTK 维基上?另外,你为什么不开始工作 VTK/QT example并逐步扩大?

关于c++ - Linux 上的 QT、VTK 项目未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272904/

相关文章:

linux - 搜索和移动文件

linux - 哪个交叉编译器?

c++ - 尝试安装用于发送电子邮件的 Qxt 时出错

c++ - 是否所有运算符重载都将运算符放在将调用其重载的对象之后?

mysql - 如何在基于 Linux 的托管服务器上禁用 MySQL 的区分大小写?

linux - 在 Linux 中使用带连字符和不带连字符的 su 时出现错误无可用编码

python - 如何从 QTextEdit 上下文菜单中删除标准菜单项

c++ - 如何在编译或运行时检测对临时问题的 const 引用?

c++ - std::stack 元素销毁顺序

c++ - 在单个屏幕上绘制场景的多个 View