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

SDL Discussion :

programmer avec SDL et QT


Sujet :

SDL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut programmer avec SDL et QT
    bonjour,
    je voudrais savoir si on peut programmer un logiciel utilisant la sdl + qt...
    car en fait il me semble compliqué de pouvoir integré le code necessaire au lancement d'une fenetre QT avec un logiciel utilisant la sdl...
    si cela est possible je voudrais bien savoir comment bien s'y prendre merci !

  2. #2
    Membre éprouvé Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Par défaut
    Disons que QT et SDL sont deux librairies complètes pour gérer le fenêtrage, tout les évenements, son et bien plus.
    Du coup soit on utilise l'un, soit l'autre vu qu'il y a de fortes chances que les fonctionnalités de l'un soit présentes dans l'autre, mais présentées d'une autre manière.

    Je ne pense pas que ça soit une bonne idée de mélanger les deux ! Mais ça doit être possible, tout est possible

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    et bien en fait peut etre que tu pourra repondre a une question plus specifique...
    je voudrais juste faire une petite fenetre avec un champs ou l'on peut taper du texte et ensuite effectuer des actions en ayant recuperer le texte saisie precedemment....
    si tu as des idées en SDL sa m'interesserai

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par nightwar Voir le message
    et bien en fait peut etre que tu pourra repondre a une question plus specifique...
    je voudrais juste faire une petite fenetre avec un champs ou l'on peut taper du texte et ensuite effectuer des actions en ayant recuperer le texte saisie precedemment....
    si tu as des idées en SDL sa m'interesserai
    C'est difficile à mon avis de mélanger les deux puisque les deux vont vouloir prendre possession de la fenêtre.

    Il faudra sûrement le faire à la main ou utiliser CEGUI par exemple.

    Jc

  5. #5
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,
    j'ai développé (pas forcément optimisé) une solution permettant de faire des textbox, des barres déroulantes, des boutons, des textlist etc.. (voir un screenshot sur ma signature si ça t'intéresse A tes risques et périls).
    Sinon j'avais vu sur internet un projet fini en SDL avec une approche totalement différente, qui avait même un programme de rubik's cube en démo, mais j'arrive plus à retrouver le lien

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    oui voila j'aimerai bien savoir ce que tu a fait pour faire des les zones de saisie de texte..
    merci

  7. #7
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    d'accord,

    aimerais-tu que ce soit sur une ligne seulement, ou que le champ de saisie puisse faire plusieurs lignes? (différence en volume de code assez importante)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    une ligne suffira c'est en fait pour faire une fenetre de "login" avec pseudo et mot de passe ... merci

  9. #9
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Bon voilà,

    Le code est dispo. A la base ça fait partie de quelque chose de beaucoup plus vaste, avec un gestionnaire de fenêtres, pour gérer les évènements etc...

    Donc c'est le code basique, sans bordures, juste un fond et du texte.

    Petit manuel:

    La classe qui t'intéresse s'appelle MF_WLigne.

    Les méthodes qui t'intéressent:
    • setRect(x, y, w, h) Permet d'initialiser le rectangle de dimensions de la ligne.
      Ex:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      MF_WLigne maligne;
      maligne.setRect(100, 100, 200, 20);
    • move(x, y) Permet de déplacer la ligne (comme setRect, mais sans les largeur/hauteur)
    • resize(w, h) Permet de redimensionner la ligne (comme setRect, mais sans les coordonnées)
    • setColor(r, g, b) Change la couleur de fond de la ligne (qui par défaut est le noir)
    • setTextColor(r, g, b) Change la couleur du texte et du curseur (qui par défaut est le blanc)
    • setFont(police, taille) Charge une police, prend en argument le chemin d'accès de ta police et la taille que tu veux.

      Retourne -1 en cas d'erreur.
      Ex:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      MF_WLigne maligne;
      if (maligne.setFont ("verdana.tff", 16) == -1)
      {
            cout << "Erreur lors du chargement de la police: " << SDL_GetError() << endl;
            return -1;
      }
       
      ...
      Une police ainsi chargée sera libérée lors de la destruction de la ligne.
    • shareFont(police) Prend une TTF_Font * en argument. La police donnée en paramètre est utilisée, mais ne sera pas libérée (comme ça plusieurs objets peuvent utiliser la même police).
      Ex:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      TTF_Font *police = TTF_OpenFont("verdana.ttf", 16);
       
      if (!police)
           ;//afficher l'erreur adéquate
       
      MF_WLigne maligne1, maligne2;
      maligne1.shareFont(police);
      maligne2.shareFont(police);
       
      ....
      TTF_CloseFont(police);
      return 0;
    • gereEvenement(event) Pour gérer les clics, touches, etc...

      Retourne 1 si l'évènement est géré, 0 sinon (par exemple clic en dehors de la ligne...)
    • ecrire(texte) Pour écrire quelque chose dans la ligne.
    • ecrire(texte, pos) Idem
    • setPos(bool first) Concrètement, dans ton exemple, si first vaut true le curseur s'affiche, sinon il arrête de s'afficher.


    Important
    • Si jamais l'utilisateur peut rentrer des caractères accentués (äëéèàùüê...), définir la macro suivante:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      #define MF_TEXT_ACCENTUE
    • Avant d'utiliser une ligne, on doit toujours lui donner des dimensions (soit par setRect, soit par resize), et une police (soit par setFont, soit par shareFont)
    • Une MF_WLigne est capable de gérer elle-même toutes les touches, les clics pour le curseur, le surlignage....
      Attention: si elle reçoit un appui sur la touche entrée, le texte est effacé!
    • Dans l'exemple ci-joint, met le fichier verdana.ttf dans le répertoire (je ne l'ai pas ajouté au zip)


    Voilà, bonne chance

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    et bien dis donc merci beaucoup !!!
    je vais tester tout ceci quand j'aurais le temps!

  11. #11
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Citation Envoyé par coyotte507
    Bon voilà,
    ...
    Merci pour ce partage, ça compile et fonctionne parfaitement sous linux.

  12. #12
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Citation Envoyé par Happy Voir le message
    Merci pour ce partage, ça compile et fonctionne parfaitement sous linux.
    Merci, ça fait plaisir

    Si vous avez des critiques à faire n'hésitez pas, ça ne peut que m'aider.

  13. #13
    Invité de passage
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Par défaut
    tout d'abord félicitations pour le boulot

    Juste une petite question, est-il possible de récupérer la chaine dans le champ dans un string?

  14. #14
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    Le champ 'texte' de l'objet est une string.

    (il est hérité de MF_Ligne)

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/04/2015, 19h48
  2. programmer avec la librairie SDL
    Par verazano dans le forum Développement OS X
    Réponses: 6
    Dernier message: 29/10/2007, 23h30
  3. Programmation graphique ... SDL ??
    Par Franck.H dans le forum C
    Réponses: 9
    Dernier message: 29/04/2004, 20h51
  4. Commencer la programmation avec le langage Java ?
    Par von_magnus dans le forum Débuter
    Réponses: 14
    Dernier message: 09/03/2004, 22h19
  5. Réponses: 3
    Dernier message: 27/08/2003, 21h14

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