C++ SDL2/Qt C++;未读取操纵杆输入,但已识别
这是我的主要任务C++ SDL2/Qt C++;未读取操纵杆输入,但已识别,c++,qt,sdl,sdl-2,ps4,C++,Qt,Sdl,Sdl 2,Ps4,这是我的主要任务 #include "mainwindow.h" #include <QApplication> #include "SDL.h" #include <QDebug> #undef main int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); SDL_Window *window = nullptr;
#include "mainwindow.h"
#include <QApplication>
#include "SDL.h"
#include <QDebug>
#undef main
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
SDL_Window *window = nullptr;
SDL_Surface *windowSurface = nullptr;
SDL_Init(SDL_INIT_VIDEO);
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS,"1");
SDL_Init( SDL_INIT_JOYSTICK);
SDL_Joystick *joystick = SDL_JoystickOpen(0);
qDebug()<<SDL_JoystickName(joystick);
qDebug()<<(SDL_JoystickNumAxes(joystick));
qDebug()<<(SDL_JoystickNumButtons(joystick));
window = SDL_CreateWindow("SDL CodingMadeEasy Series", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
windowSurface = SDL_GetWindowSurface(window);
SDL_Event ev;
int x;
bool isRunning = true;
while(isRunning)
{
while(SDL_PollEvent(&ev) != 0)
{
if(ev.type == SDL_JOYBUTTONDOWN)
{
qDebug()<<"Button Clicked";
}
}
// Drawing the current image to the window
SDL_UpdateWindowSurface(window);
}
return a.exec();
}
#包括“mainwindow.h”
#包括
#包括“SDL.h”
#包括
#未定义主
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口w;
w、 show();
SDL_Window*Window=nullptr;
SDL_Surface*windowSurface=nullptr;
SDL_Init(SDL_Init_视频);
SDL_设置提示(SDL_提示_操纵杆_允许背景_事件,“1”);
SDL_Init(SDL_Init_操纵杆);
SDL_操纵杆*操纵杆=SDL_操纵杆打开(0);
qDebug()它是通过启用操纵杆事件修复的
SDL_JoystickEventState(SDL_ENABLE);
什么操作系统?没有qt可以吗?你确定没有禁用操纵杆事件吗?我在windows 10上。没有尝试过没有qt。请告诉我如何启用它们?但我不认为我从一开始就禁用了它们。你是对的,它需要启用。