В Qt существует так называемый QGamepadManager Class
который отвечает за подключение джойстика и получения с него сигналов при нажатии на кнопку или движения триггера.
GamepadMonitor::GamepadMonitor(QObject *parent)
: QObject(parent)
, m_gamepad(0)
{
auto gamepads = QGamepadManager::instance()->connectedGamepads();
if (gamepads.isEmpty()) {
return;
}
m_gamepad = new QGamepad(*gamepads.begin(), this);
connect(m_gamepad, &QGamepad::axisLeftXChanged, this, [](double value){
qDebug() << "Left X" << value;
});
connect(m_gamepad, &QGamepad::axisLeftYChanged, this, [](double value){
qDebug() << "Left Y" << value;
});
connect(m_gamepad, &QGamepad::buttonAChanged, this, [](double value){
qDebug() << "Button A" << value;
});
}
Подскажите, как вместо qDebug() << "Left X" << value;
выполнить функцию и передать в нее этот value
?
Соедините сигнал с Вашим методом таким образом (если метод не является слотом, то сделайте его таковым):
connect(m_gamepad, SIGNAL(axisLeftXChanged(double)), minimalaladinclien, SLOT(sendJoystickAxisUpdate(double));
Как вариант можно написать так, тогда не придётся изменять класс переменной minimalaladinclien
:
connect(m_gamepad, &QGamepad::axisLeftXChanged, this, [this](double value){
minimalaladinclien->sendJoystickAxisUpdate(value);
});
Ну и способ который уже предложил @Arhad, пожалуй, самый правильный, если метод не является слотом:
connect(m_gamepad, &QGamepad::axisLeftXChanged, this, std::bind(&YourClass::sendJoystickAxisUpdate, minimalaladinclien);
Функция bind
подключается с помощью include <functional>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Уточнить корень уравнения x^2-x-03=0 на отрезке [1;2] с точностью Eps = 10^-5, используя метод деления отрезка пополам
Вопрос 1: Я запускаю тесты на виртуалкеЧтобы тесты проходили на них нужно смотреть - т