IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Lier Qt et SDL (événements)

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut Lier Qt et SDL (événements)
    Bonjour,
    je debute sous qt et j'essaye desesperement depuis des semaines d'utiliser les fontions de la SDL pour utiliser un joystick dans un programme QT...
    mais mon probleme c'est que je n'arrive pas à linker ma sdl dans mon projet qt;
    Au moment de compiler, il me fait SDL_init_video et joy not decrlared in this scope...
    alors j'aimeras savoir ce que j'ai fait faut... dans le doute j'ai aussi ajoutés mes headers sdl avec ceux de qt dans les fichiers qt, et mon sdl.dll avec ceux de qt dans les fichiers qt.
    voici mon .pro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    QT       += core gui
     
    TARGET = Essaie2
    TEMPLATE = app
     
    INCLUDEPATH +=C:\Users\Victor\Documents\Projets\paintball\SDL-devel-1.2.14-mingw32
    LIBS +=C:\Users\Victor\Documents\Projets\paintball\SDL-devel-1.2.14-mingw32\SDL-1.2.14\bin
     
    SOURCES += main.cpp\
            Fenetre.cpp
     
    HEADERS  += Fenetre.h
     
    FORMS    += widget.ui
    mon includepath pointe sur le dossier ou il y a ts les .h de la sdl, dans le dossier du reste de la sdl.
    et mon libs, vers le sdl.dll dans le dossier ou se trouve le reste de la sdl...

    ma classe cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    #include "Fenetre.h"
    #include <iostream>
    using namespace std;
     
    Fenetre::Fenetre(int FenWidth, int FenHeight) : QWidget()
    {
        setFixedSize(FenWidth, FenHeight);
        setWindowIcon(QIcon("icone_qt.png"));
        setWindowTitle("Editeur Mouvement v0.01");
     
        onglets = new QTabWidget(this);
        onglets->setGeometry(30, 20, 240, 160);
     
        // 2 : Créer les pages, en utilisant un widget parent pour contenir chacune des pages.
        page1 = new QWidget;
     
        // Page 1
            frame = new QFrame();
            frame->setGeometry(30, 20, 120, 90);
            frame->setAttribute(Qt::WA_PaintOnScreen);
            frame->setAttribute(Qt::WA_NoSystemBackground);
     
     
            // On lie SDL a Qt
                char windowid[64];
                #ifdef Q_WS_WIN
                    sprintf(windowid, "SDL_WINDOWID=0x%lx", reinterpret_cast<qlonglong>(frame->winId()));
                #elif defined Q_WS_X11
                    sprintf(windowid, "SDL_WINDOWID=0x%lx", frame->winId());
                #else
                    qFatal("Fatal: cast du winId() inconnu pour votre plate-forme; toute information est la bienvenue!");
                #endif
     
                cout<<windowid;
     
                SDL_putenv(windowid);
                // Initialisation du système vidéo de SDL
                SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
                SDL_Surface* screen = SDL_SetVideoMode(120, 90, 32,SDL_HWSURFACE|SDL_DOUBLEBUF);
            //fin SDL
     
            QVBoxLayout *vbox1 = new QVBoxLayout;
            vbox1->addWidget(frame);
     
            page1->setLayout(vbox1);
     
        // Fin page 1
     
     
        onglets->addTab(page1, "SDL Mouvement");
    }
    ma classe .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #ifndef FENETRE_H_INCLUDED
    #define FENETRE_H_INCLUDED
     
    #include <SDL-1.2.14/SDL.h>
    #include<SDL-1.2.14/SDL_video.h>
    #include<SDL-1.2.14/SDL_joystick.h>
    #undef main
     
    #include <QApplication>
    #include <QtGui>
     
    class Fenetre : public QWidget // On hérite de QWidget (IMPORTANT)
    {
        public:
        Fenetre(int FenWidth, int FenHeight);
     
        private:
        QPushButton *m_bouton;
        QTabWidget *onglets;
        QWidget *page1;
        QFrame *frame;
     
    };
     
    #endif // FENETRE_H_INCLUDED
    et enfin ma main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include "fenetre.h"
     
    int main(int argc, char* argv[])
    {
     
        QApplication app(argc, argv);
     
        Fenetre fenetre(400,200);
        fenetre.show();
     
        return app.exec();;
    }
    alors voila qu'est ce que j'ai faut svp???
    Un grand Merci!!!

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    En regardant (rapidement) j'ai déjà vu que:
    LIBS +=C:\Users\Victor\Documents\Projets\paintball\SDL-devel-1.2.14-mingw32\SDL-1.2.14\bin
    Je pense que le dossier à indiqué c'est un qui s'appelle 'lib' et non 'bin' ... et il doit contenir les différentes bibliothèques (en .so ou .a ou .lib)

    Sinon -> http://irmatden.developpez.com/tutoriels/sdl/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut
    Merci beaucoup, j ai corrigé cela, mais qt ne semble pas vraiment trouver la sdl quand meme, puisque j ai des undefined reference to des fonctions de la sdl...
    et irtmaden n'en dit pas plus sur quoi mettre dans le .pro

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    J'espère que le chemin suivant
    C:\Users\Victor\Documents\Projets\paintball\SDL-devel-1.2.14-mingw32\SDL-1.2.14\lib
    Existe bien chez vous ... et qu'il contient les fichier .a ou .lib que le projet utilisera pour compiler (linker)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut
    oui il existe donc ca marche a present!!! je sais pas pourquoi en ressayant de compiler ca a fonctionné!!!
    donc voila la solution est simple le LIBS doit pointer vers les .a
    Merci bcp!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tuto morpion, événement SDL et CPU à 100%
    Par dwarfman78 dans le forum SDL
    Réponses: 7
    Dernier message: 11/01/2008, 20h15
  2. Gestion évènements SDL dans panel wxwidgets
    Par |Psk| dans le forum SDL
    Réponses: 1
    Dernier message: 08/09/2007, 01h52
  3. quel événement utilisé pour lier un sous-formulaire
    Par MarLoZ dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/09/2007, 13h51
  4. Réponses: 3
    Dernier message: 02/09/2007, 16h53
  5. Réponses: 26
    Dernier message: 30/07/2007, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo