Qt Colordialog 与 VTK 交互

问题描述

我在设置 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 (将#修改为@)