问题描述
我在设置 QvtkOpenGl 小部件的背景颜色时遇到问题,当我使用 Qcolodialog 更改背景颜色时,它给了我以下错误消息`通用警告:
In D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLState.cxx,line 222
Error in cache state for GL_COLOR_CLEAR_VALUE
Generic Warning: In D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLState.cxx,line 229
at stack loc
at vtkOpenGLState::CheckState in D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLState.cxx line 228
at vtkOpenGLState::vtkglClearDepth in D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLState.cxx line 394
at vtkOpenGLRenderer::Clear in D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLRenderer.cxx line 573
at vtkOpenGLCamera::Render in D:\VTK-8.2.0\Rendering\OpenGL2\vtkOpenGLCamera.cxx line 80
at vtkRenderer::UpdateCamera in D:\VTK-8.2.0\Rendering\Core\vtkRenderer.cxx line 482`
我正在使用这些代码在我的 MainWinodw 构造器中初始化渲染器
// init RendererWindow
ui->openGLWidget->SetRenderWindow(mRenderWindow.Get());
ui->openGLWidget->GetRenderWindow()->AddRenderer(mRenderer);
// init Camera
mCamera->SetViewUp(0,1,0);
mCamera->SetPosition(0,10);
mCamera->SetFocalPoint(0,0);
// init Renderer
mRenderer->SetActiveCamera(mCamera);
mRenderer->SetBackground(mColors->GetColor3d("Cyan").GetData());
和这些代码来改变背景颜色
connect(ui->setBackCol,&QPushButton::clicked,[this]() {
QColor color = QColorDialog::getColor(Qt::white,this,"Choose color");
double Red = static_cast<double>(color.red());
double Green = static_cast<double>(color.green());
double Blue = static_cast<double>(color.blue());
mRenderer->SetBackground(Red,Green,Blue);
mRenderWindow->Render();
});
我不知道为什么会发生这种情况,颜色会变成我最后选择的颜色,但是上面的这些错误消息一直出现。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)