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

GTK+ Discussion :

Création d'un surface de contrôle MIDI avec Gtk


Sujet :

GTK+

  1. #1
    Invité
    Invité(e)
    Par défaut Création d'un surface de contrôle MIDI avec Gtk
    Bonjour, merci pour votre attention.
    Je débute avec Gtk, et je n'est pas trouvé d'exemple dans testgtk de ce que je désire faire.
    J'aurais besoin de placer/déplacer des spin button sur une surface libre à la position que je désire, par un clique droit dans un menu contextuel.
    Ce que je cherche c'est l'objet ad'hoc pour la surface libre ?
    S'il vous plait ?
    Merci bien pour votre aide ou vos idées.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Les GtkFixed peuvent peut être répondre à tes besoins.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok, merci bien pour la piste Gerald.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour, je profite de ce fil pour poser une question connexe,
    Je veux donc faire un click droit sur le Gtk_Fixed, mais je n'est pas de réaction.
    J'ai mis un Gtk_Fixed dans une Gtk_Frame ; la Gtk_Frame dans une Vbox avec pack_start(Vbox, frame, True, True, 0); et j'ai connecté le Gtk_Fixed par le signal "button_press_event" à une fonction print_toto. Mais Toto n'est pas affiché.

    Merci pour votre aide.

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Les GtkFixed n'ont pas de signaux affectés. Ils "n'écoutent" rien. Seuls les widgets qui seront insérés à l'intérieur de ceux-ci pourront émettre des signaux selon leurs caractéristiques.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Les GtkFixed n'ont pas de signaux affectés. Ils "n'écoutent" rien. Seuls les widgets qui seront insérés à l'intérieur de ceux-ci pourront émettre des signaux selon leurs caractéristiques.
    Arf, c'est bien dommage, Merci gerald pour tes lumières.

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Tu peux peut être inclure un GtkFixed dans un GtkEventBox pour lui permettre d'avoir une écoute sur les évènements, comme pour les GtkDrawingarea.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Tu peux peut être inclure un GtkFixed dans un GtkEventBox pour lui permettre d'avoir une écoute sur les évènements, comme pour les GtkDrawingarea.
    Effectivement, ça fonctionne, enfin, pour le moment, j'arrive à intercepter le signal.
    Merci beaucoup Gerald.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'ai donc réussi à placer mes spin_button à la position de la sourie au moment d'un click droit via un menu contextuel, mais maintenant je sèche sur la technique à employer pour déplacer mes spin button.
    En fait j'ai placé le spin button avec un label dans une vbox.

    J'aurais aimé, s'il vous plait, être orienté, encore, sur la bonne technique pour déplacer mes spin button à la sourie via un click gauche puis glissé.

    Pour le moment, lorsque je clique sur le spin button, c'est le spin button qui réagi, et losque je clique sur le label associé dans la vbox, c'est le Gtk_Fixed qui est donc dans un Gtk_Event_Box, qui reçoit le click.

    Merci pour votre aide.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Hello, Bonjour,....

    J'ai codé un peut et j'ai réussi.
    J'ai mis mon label dans une frame, la frame dans une Gdk_Event.
    Du coup je peux attraper le spin button par la zone du label pour le déplacer.

    Merci

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour, juste pour dire que ma soluce, parfois elle marche et parfois elle marche pas. Lors d'un déplacement, mon widget n'est pas toujours placer à la bonne position, même rarement. Donc, si vous avez des idée.

    Voici mon code avec GtkAda.

    Code ada : 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
     
     function Controler_Mouse_Event(Widget          : access Gtk.Widget.Gtk_Widget_Record'Class;
                                      Event           : Gdk.Event.Gdk_Event;
                                      Controler       : Controler_Access) return Boolean  is
          X, Y : Gint;
       begin
     
          case Gdk.Event.Get_Event_Type(Event) is
             when Gdk.Event.Button_Press =>
                case Gdk.Event.Get_Button(Event) is
                   when 1 =>
                      Put_Line("Presse left");
                      Controler.Timbre.Controler_Id := Controler.Id;
                   when others =>
                      null;
                end case;
             when Gdk.Event.Button_Release =>
                Put_Line("Release");
                if Controler.Timbre.Controler_Id /= 0 then
     
     
                     X := Gint(Gdk.Event.Get_X(Event));
                     Y := Gint(Gdk.Event.Get_Y(Event));
                     Move(Controler.Timbre.Synth_Fixed,
                          Controler.Timbre.Controlers_Table(Controler.Timbre.Controler_Id).Controler_vbox,
                          X,
                          Y);
                     Controler.Timbre.Controler_Id := 0;
                  end if;
             when others => null;
          end case;
          return True;
       end controler_Mouse_Event;
    Une fonction que j'ai connecté par les signaux "button_press_event" et "button_release_event".

Discussions similaires

  1. Création d'un contrôle Winform avec Delphi pour .NET
    Par Nono40 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 13/02/2013, 20h11
  2. [FLASH 8] son Midi avec Flash
    Par Stark333 dans le forum Flash
    Réponses: 2
    Dernier message: 16/02/2006, 11h48
  3. Réponses: 22
    Dernier message: 03/08/2005, 00h28
  4. [MFC] Acquisition du port midi avec visual c++ 6.0
    Par spirit_1999 dans le forum MFC
    Réponses: 2
    Dernier message: 16/05/2005, 19h26

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