gpt4 book ai didi

qt - 如何以编程方式在 qml 中渲染 vtk 项?

转载 作者:行者123 更新时间:2023-12-02 09:18:19 30 4
gpt4 key购买 nike

到目前为止,我了解到我们在 QML 中有两个线程,我们的主应用程序线程和我们的“场景图”线程:http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html

我借助此链接实现了自己的 vtkQmlItem:http://doc.qt.io/qt-5/qtquick-scenegraph-openglunderqml-example.html

我注意到我的 vtkscene 仅在 qml 流发出 afterrendering 信号时才会渲染。

到目前为止,一切都很好并且工作完美,我可以看到我的 vtk 场景,甚至可以与之交互。

但我也想以编程方式渲染我的 vtk 场景,因为我想通过围绕 vtk 对象移动相机来制作动画。

直接调用renderer->render()会显示很多vtk错误,并且似乎不是这样做的好方法。

当我希望立即处理事件时,调用 this->window()->update() 似乎将事件放入 eventLoop 中。我设法让它立即工作的唯一方法是使用 QApplication::processEvents(),这是我不喜欢的一种 hack,并且会喜欢另一种解决方案。

所以我不喜欢的工作解决方案的伪代码如下:

for (int i = 0; i < 50; i++)
{
ChangeCameraPosition(i); // Change the position and orientation of the vtk camera
this->window()->update();
QApplication::processEvents(); // The hack I don't like
QThread::msleep(500);
}

最佳答案

对于使用 Qt QuickControls 2 和 VTK 8 寻找解决方案的人,您可以在此存储库 https://github.com/nicanor-romero/QtVtk 中找到一个工作示例。在自述文件中包含构建说明。

关于qt - 如何以编程方式在 qml 中渲染 vtk 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41685872/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com