我有一个包含 Qt3DWindow() 的 QWidget。我希望能够使用鼠标滚轮在 Qt3DWindow 内“放大”和缩小 QtEntity,同时将鼠标悬停在窗口上。
我有这个功能,但只有当鼠标悬停在 Qt3DWindow 框架之外时。这是我用于初始化窗口和处理鼠标滚轮事件的代码。
窗口初始化:
mainView = new Qt3DExtras::Qt3DWindow();
mainView->defaultFramegraph()->setClearColor(QColor(QRgb(0x4d4d4f)));
QWidget *container = QWidget::createWindowContainer(mainView);
处理车轮事件:
void ModelView::wheelEvent(QWheelEvent *event){
QVector3D vec;
vec = cameraEntity->position() - modifier->m_transform->translation();
vec = vec.normalized();
QPoint delta = event->angleDelta();
int zoom_distance = delta.y()*0.01;
vec = cameraEntity->position() - zoom_distance*vec;
cameraEntity->setPosition(vec);
}
将鼠标悬停在 Qt3DWindow 框架上时,覆盖窗口鼠标抓取的技巧是什么?
提前感谢您的帮助。