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

Ruby Discussion :

[wxRuby] Menus et gestion des événements


Sujet :

Ruby

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 43
    Points
    43
    Par défaut [wxRuby] Menus et gestion des événements
    Bonjour,

    Dans une application wxRuby, j'ai prévu d'y mettre une barre de menus :

    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
     
    class BarreMenus < MenuBar
      def initialize
        super
        menu_fichier = Menu.new
        menu_fichier.append(6001,'Ouvrir','Ouvrir')
        menu_fichier.append(6002,'Fermer','Fermer')
        menu_fichier.append_separator
        menu_fichier.append(6003,'Quitter','Quitter')
        append(menu_fichier,'Fichier')
     
        menu_edition = Menu.new
        append(menu_edition,'Edition')
      end
    end
     
    class WinAPP < Frame
      def initialize
        super(nil,-1,'Menus')
        set_menu_bar(BarreMenus.new)
      end
    end
    Par contre, je n'ai absolument aucune idée sur la façon de mettre en place la gestion des événements associés aux options des menus. Si quelqu'un a une idée...

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Dans le gem de wxRuby, il y a un ensemble d'examples que tu peux utiliser comme base.

    sinon, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    evt_menu 6001 do 
        |evt| new_element( evt ) 
    end

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Je t'ai mal répondu, voici un exemple qui sera bien plus parlant.

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    #!/usr/bin/env ruby
     
    # Utilisation de la lib WxRuby
    require "wx"
     
    module Exemple
      # Spécialisation d'une Wx::Frame pour mes propres besoins
     
      class Frame < Wx::Frame
        # Le tableau que tu vois ici, sert à créer des constantes qui seront nécessaires pour la création 
        # de mon menu, et de même pour l'association d'évènement à chaque menu
        %w[	ID_NewItem
            ID_ModifyItem
            ID_DropItem
        ].each_with_index do |c, i|
          const_set( c, 1000 + i )
        end
     
        def initialize( title )
          # Appel du constructeur de la classeur mère ( Wx::Frame )
          super( nil, Wx::ID_ANY, title, Wx::DEFAULT_POSITION, Wx::Size.new( 400, 300 ) )
     
          menu_bar = Wx::MenuBar.new
          item_menu = Wx::Menu.new
     
          menu = Wx::Menu.new
     
          # Création d'un menu nommé "Element" 
          # * Nouveau      -> on_new_item
          # * Modifier     -> on_modify_item
          # * Supprimer    -> on_drop_item
          # ***********
          # * Quitter      -> on_exit
     
          menu.append(ID_NewItem, "&Nouveau")
          evt_menu ID_NewItem, :on_new_item 
     
          menu.append(ID_ModifyItem,   "&Modifier") 
          evt_menu ID_ModifyItem, :on_modify_item
     
          menu.append(ID_DropItem,  "&Supprimer") 
          evt_menu ID_DropItem, :on_drop_item
     
          menu.append_separator
     
          menu.append(Wx::ID_EXIT, "&Quitter\tAlt-X")
          evt_menu Wx::ID_EXIT, :on_exit
     
          # J'ajoute mon menu Element dans ma bare de menu
          menu_bar.append( menu, "&Element" )
     
          set_menu_bar( menu_bar )
     
        end
     
        def on_new_item
          Wx::message_box( "Je crée un élément" )
        end
     
        def on_modify_item
          Wx::message_box( "Je modifie cet élément" )
        end
     
        def on_drop_item
          Wx::message_box( "Je supprime cet élément" )
        end
     
        def on_exit
          close( true )
        end
      end
     
      class App < Wx::App
        def on_init
          @frame = Frame.new( "Exemple de Menu" )
          @frame.show
        end
      end
     
      class << self
        def run()
          App.new.main_loop()
        end
      end
    end
     
    Exemple.run()
    J'espère que cet exemple t'aidera, je l'ai vérifié et il fonctionne nickel.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Ta première réponse m'a suffit pour résoudre mon problème. Je t'en remercie.

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

Discussions similaires

  1. [XML] [EXPAT] xml_parse et la gestion des événements...
    Par Herode dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/02/2006, 20h59
  2. Gestion des évènements Netscape 7.0
    Par RATHQUEBER dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 19/12/2005, 16h26
  3. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  4. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  5. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04

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