C++ C++;Qt-如何同时捕获键盘和鼠标事件
我正在使用Qt为我的游戏构建一个简单的关卡编辑器。要浏览3d场景,我需要同时使用键盘和鼠标 到目前为止,这就是我所拥有的,它可以工作,但当我使用WASD移动时,我不能四处看看。如何同时捕获和响应键盘和鼠标事件C++ C++;Qt-如何同时捕获键盘和鼠标事件,c++,qt,keyboard,mouse,C++,Qt,Keyboard,Mouse,我正在使用Qt为我的游戏构建一个简单的关卡编辑器。要浏览3d场景,我需要同时使用键盘和鼠标 到目前为止,这就是我所拥有的,它可以工作,但当我使用WASD移动时,我不能四处看看。如何同时捕获和响应键盘和鼠标事件 void MainWindow::mousePressEvent(QMouseEvent* event) { if(event->buttons() == Qt::LeftButton && actionCamera) { ui->
void MainWindow::mousePressEvent(QMouseEvent* event)
{
if(event->buttons() == Qt::LeftButton && actionCamera)
{
ui->renderWindow->trackMouse = true;
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent* event)
{
ui->renderWindow->trackMouse = false;
}
void MainWindow::keyPressEvent(QKeyEvent* event)
{
if(event->key() == Qt::Key_W)
{
ui->renderWindow->moveForward = true;
}
if(event->key() == Qt::Key_S)
{
ui->renderWindow->moveBackwards = true;
}
if(event->key() == Qt::Key_A)
{
ui->renderWindow->moveLeft = true;
}
if(event->key() == Qt::Key_D)
{
ui->renderWindow->moveRight = true;
}
}
void MainWindow::keyReleaseEvent(QKeyEvent* event)
{
if(event->key() == Qt::Key_W)
{
ui->renderWindow->moveForward = false;
}
if(event->key() == Qt::Key_S)
{
ui->renderWindow->moveBackwards = false;
}
if(event->key() == Qt::Key_A)
{
ui->renderWindow->moveLeft = false;
}
if(event->key() == Qt::Key_D)
{
ui->renderWindow->moveRight = false;
}
}
QMouseEvent和QKeyEvent不能同时触发,只需考虑事件队列中交付的所有事件。但这两个事件在短时间内发生是合理的,因为它们是同时发生的。所以请跟踪这两个事件,并且计时应该是可以的。QMouseEvent和QKeyEvent不能同时触发,只需考虑事件队列中交付的所有事件。但这两个事件在短时间内发生是合理的,因为它们是同时发生的。所以,跟踪这两个事件,时间安排应该是可以的。