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

wxWidgets Discussion :

Gérer les events d'un tableau de boutons


Sujet :

wxWidgets

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Gérer les events d'un tableau de boutons
    Bonjour,

    Réçament je me suis mis à wxWidget dans le but de faire des interfaces graphiques facilement. Pour me pratiquer, j'essais de faire un jeu de démineur ( comme celui présent dans windows. ) Le problème est que je dois gérer les events pour un tableau de n boutons ( on peux modifier la largeur et la hauteur de l'espace de jeu ) ce qui fait que je ne sais pas comment faire ma table d'évenement ... Dois-je faire une table d'évenement dans la classe de mes bouton ? ( J'utilise une classe dérivé de wxButton. ) Existe t'il une fonction du genre OnClick ? ( J'ai cherché dans le doc et j'ai rien trouvé ...) Dois-je faire ma table dans la classe frame ( qui est aussi dérivé de wxFrame ), si oui comment le faire pour un nombre indéterminé de boutons ?

    Merci d'avance,

    Psy³
    The problem is someplace between the chair and the keyboard

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Associe un id spécial à tes boutons lors de leur création qui te permet de les identifier. A tous les bouttons tu associes la même fonction, celle-ci identifie les coordonnées du bouton à partir de son Id.
    La fonction OnClick c'est à toi de la coder.

    http://www.wxwidgets.org/manuals/2.4.2/wx470.htm#eventhandlingoverview
    http://www.wxwidgets.org/manuals/2.4.2/wx411.htm#wxwindowseteventhandler
    Pour gérer l'évènement clic sur un bouton, voir wxCommandEvent et EVT_BUTTON.
    http://www.wxwidgets.org/manuals/2.4.2/wx69.htm

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Associe un id spécial à tes boutons lors de leur création qui te permet de les identifier
    Ça j'y avais déjà pensé mais je savais pas comment faire pour gérer les events, j'vais esseyer ça devrait marcher.

    Merci,

    Psy³
    The problem is someplace between the chair and the keyboard

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Hum ça fait un certain temps que j'ai pas touché à wxWidgets, mais il me semble qu'il faut associer un handler wxEvtHandler à tes boutons fraichement créés via SetEventHandler.
    Ton handler s'abonne à l'évènement clic sur bouton via wxEvtHandler::Connect. La doc dit que tu peux même filer une plage d'Id ce qui est l'idéal dans ton cas. Si tes bouton vont de wxID_FIRST_BUTTON à wxID_LAST_BUTTON, tu fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myEvtHandler->Connect( wxID_FIRST_BUTTON, wxID_LAST_BUTTON, wxEVT_COMMAND_BUTTON_CLICKED, OnClick );
    Tu as un exemple dans ton install de wxWidgets sur la gestion dynamique des events.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut (Clic droit)Un autre problème avec wxWidgets :(
    Rebonjour,

    Alors toujours dans mon projet de démineur j'ai réussi à gérer les events sur chaque bouttons gràce à connect() et je cherche maintenant comment faire pour gérer le click droit. J'ai cherché dans la doc et je suis tombé sur certain trucs mais rien de satisfaisant...

    Merci d'avance,

    Psy³
    The problem is someplace between the chair and the keyboard

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Ben un bouton t'envoie un message quand il est cliqué, or il ne peut être cliqué qu'avec le bouton gauche...
    En géénral pour un démineur on n'utilise pas de bouton, mais juste un panel dans lequel on détecte les clics et à partir des coordonnées on n'en déduit la case cliquée. On y dessine alors ce qu'on veut (image d'un bouton enfoncé...).

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci de ton aide

    J'vien de voir dans les exemples sur le menu, ils se servent de EVT_RIGHT_UP sur le frame pour gérer le click droit afin de faire apparaître un pop-up menu... En testant un peux j'ai remarqué qu'on peux le faire même sur les boutons ! ( En fait la macro qui gère les click droit se trouve dans la classe wxMouseEvent ... j'aurais vraiment dû y penser
    )

    Merci,

    Psy³
    The problem is someplace between the chair and the keyboard

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Mais je ne pense pas que tu ais le bouton qui s'enfonce...

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. [DOM] Trie tableau html en conservant les events onclick
    Par Orbiplanax dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/12/2008, 16h04
  3. comparer les valeurs d'un tableau
    Par nicerico dans le forum ASP
    Réponses: 4
    Dernier message: 19/08/2004, 11h20
  4. Compter les valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 6
    Dernier message: 30/03/2004, 13h29
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

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