私はQt3DWindow()を含むQWidgetを持っています。私はマウスのスクロールホイールを使ってQt3DWindow内のQtEntityを「ズーム」することができるようにしたいと思います。Qt 3Dウィンドウのマウスコントロール
私は、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フレームの上にマウスを移動するとき、ウィンドウのマウスのグラブを上書きするためのトリックは何ですか?
ご協力いただきありがとうございます。
恐ろしい!これは完璧に機能しました。ありがとう! – dsell002
歓迎します...それはあなたのための適切なソリューションだったことをうれしく思います。 – goug