Qt接入游戏手柄
-
用到的库QGamepad
-
头文件#include <QtGamepad/QGamepad>
代码中包含值改变和状态改变的相应函数
源代码
- 头文件 GameHandle.h
class QGamepad;
class GameHandle : public QWidget
{
Q_OBJECT
public:
GameHandle(QWidget *parent = nullptr);
~GameHandle();
public slots:
void OnAxisLeftXChanged(double dValue);
void OnAxisRightXChanged(double dValue);
void OnPress(bool bPress);
private:
Ui::GameHandle ui;
QGamepad *m_pGamepad;
};
- 源文件 GameHandle.cpp
#include "QtGamepad/QGamepad"
GameHandle::GameHandle(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
m_pGamepad = new QGamepad(0, this);
connect(m_pGamepad, &QGamepad::axisLeftXChanged, this, &GameHandle::OnAxisLeftXChanged);
connect(m_pGamepad, &QGamepad::axisLeftYChanged, this, &GameHandle::OnAxisLeftXChanged);
connect(m_pGamepad, &QGamepad::buttonL1Changed, this, &GameHandle::OnPress);
connect(m_pGamepad, &QGamepad::buttonR1Changed, this, &GameHandle::OnPress);
connect(m_pGamepad, &QGamepad::buttonStartChanged, this, &GameHandle::OnPress);
connect(m_pGamepad, &QGamepad::buttonSelectChanged, this, &GameHandle::OnPress);
connect(m_pGamepad, &QGamepad::buttonGuideChanged, this, &GameHandle::OnPress);
}
GameHandle::~GameHandle()
{
}
void GameHandle::OnAxisLeftXChanged(double dValue)
{
qDebug() << __FUNCTION__ << "\tvalue: " << dValue;
}
void GameHandle::OnAxisRightXChanged(double dValue)
{
qDebug() << __FUNCTION__ << "\tvalue: " << dValue;
}
void GameHandle::OnPress(bool bPress)
{
qDebug() << __FUNCTION__ << "\tvalue: " << bPress;
}