Я пытаюсь реализовать библиотеку ввода джойстика для Qt , и большинство работает нормально, а не один.
У моего джойстика есть 3 оси. Каждый раз, когда я пытаюсь использовать третью ось, я получаю сообщение об ошибке
ASSERT failure in QList<T>::operator[]: "index out of range", file ../Qt/5.9.3/gcc_64/include/QtCore/qlist.h, line 549
Но с помощью отладчика я смог понять, что по какой-то причине 4-я ось на контроллере имеет индекс e.axis, равный 4. Список, в котором хранится присвоение оси, имеет только 4, что означает, что Индекс 4-й оси выходит за пределы диапазона Списка.
Отладчик покажет мне проблему в этом коде (getInputDevice ...
)
void QJoysticks::onAxisEvent (const QJoystickAxisEvent& e)
{
if (!isBlacklisted (e.joystick->id)) {
getInputDevice (e.joystick->id)->axes [e.axis] = e.value;
emit axisChanged (e.joystick->id, e.axis, e.value);
}
}
qDebug() << getInputDevice (e.joystick->id)->axes;
выходит (0, 0, 0)
qDebug() << e.axis;
выходит 4
У кого-нибудь есть идея, как я могу это исправить?