2016-12-21 54 views
1

我想用Qt啓動一個ITK/VTQ項目。該項目在Windows 10上運行,但不在Ubuntu上運行。QT,在linux上沒有運行的VTK項目

我有啓動項目時出現以下錯誤:

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); 

如何我可以糾正這個錯誤信息?

問題在哪裏?

回答

2

你的代碼的一大塊(_textureCoordinates和上面的東西)沒有連接到其餘的。你在這裏顯示的不是一個可運行的例子,但看起來你沒有正確設置VTK(與VTK hello world比較)。

您是否試過在VTK維基上查看一些examples?另外,你爲什麼不開始工作VTK/QT example並逐步擴展呢?