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+ avec C & C++ Discussion :

GtkScale + boutons


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut GtkScale + boutons
    Bonjour,

    Je cherche à prendre la main sur une gtkScale avec un bouton ">>" et un bouton "<<". Je sais que les "up_arrow" et "down_arrow" permet de faire varier la gtkscale mais j'aimerais le faire avec des boutons
    Voici le code:

    Code C : 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
     
     
    // Fichier interface.c
    g_signal_connect_swapped ((gpointer) btn_Auto, "clicked",
                                G_CALLBACK (on_btn_Auto_clicked),
                                GTK_OBJECT (hscale1));
      g_signal_connect_swapped ((gpointer) btn_Moins, "clicked",
                                G_CALLBACK (on_btn_Moins_clicked),
                                GTK_OBJECT (hscale1));
     
    //Fichier des callbacks
    void
    on_btn_Moins_clicked                   (GtkButton       *button,
                                            gpointer         user_data)
    {
       //Déclarations
       gdouble iValue;
       gdouble value;
     
     
       /* Recuperation de la valeur de la scale */
       iValue = gtk_range_get_value(GTK_RANGE(button));
     
     
       if (iValue!=0.0)
       {
    	    value=iValue - GTK_ADJUSTMENT(button)->step_increment;
    		gtk_range_set_value(GTK_RANGE(button),value);	
       }
       else
       {
    		gtk_widget_set_sensitive(GTK_WIDGET(user_data), FALSE);
       }
    }
     
    (idem pour l'autre)

    Le problème est que je n'arrive pas à récupérer le step_increment que j'ai mis pour pouvoir correctement augmenter ou diminuer la valeur de ma gtkscale.

    Si qqn a une solution je suis preneur ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Tu dois pouvoir récupérer ça en utilisant le GtkAdjustment associé au GtkRange (dont dérive ton GtkScale)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Tu dois pouvoir récupérer ça en utilisant le GtkAdjustment associé au GtkRange (dont dérive ton GtkScale)
    tu peux donner un exemple stp ?
    La syntaxe au moins (à peu près)

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    http://library.gnome.org/devel/gtk/stable/GtkScale.html a tout ce que tu veux.... Un lien vers GtkRange dans la hiérarchie d'héritage, GtkRange a une seule méthode qui renvoie un GtkAdjustment, et GtkAdjustment a une propriété 'step-increment' qui doit etre ce que tu veux j'imagine.

    EDIT: desole pour les 2 msgs dupliques, j'ai cru que le premier s'etait perdu avant que je clique sur "poster"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Problème résolu !!

    Pour ceux que ça pourrait intéresser voici le code:
    Code C : 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
     
    //Fonction de callback
    void
    on_btn_Plus_clicked                    (GtkButton       *button,
                                            gpointer         user_data)
    {
    	//Déclarations
       gdouble iValue;
       gdouble value;
       GtkAdjustment *test;
     
     
       /* On active la bar de sélection*/
       gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
     
       /* Recuperation de la valeur de la scale */
       iValue = gtk_range_get_value(GTK_RANGE(button));
     
       /* On récupère adjustement pour connaitre le step_increment*/
       test=gtk_range_get_adjustment(GTK_RANGE(button));
     
       /* On calcule la nouvelle valeur*/
       value=iValue + test->step_increment;
     
       if (value>0.0 && value<100.0)
       {
    	    gtk_range_set_value(GTK_RANGE(button),value);	
       }
       else
       {
    	   if (value >= 100.0)
    	   {
    		   gtk_range_set_value(GTK_RANGE(button),value);	
    		   gtk_widget_set_sensitive(GTK_WIDGET(user_data), FALSE);
    	   }
       }
    }
     
    // Signal
    g_signal_connect_swapped ((gpointer) btn_Plus, "clicked",
                                G_CALLBACK (on_btn_Plus_clicked),
                                GTK_OBJECT (hscale1));

    Encore merci !

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

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. redémarrer un prog à partir d'un bouton
    Par yokito dans le forum Langage
    Réponses: 5
    Dernier message: 06/09/2002, 13h19
  3. Réponses: 2
    Dernier message: 31/08/2002, 14h00
  4. Bmp pour boutons
    Par Fizgig dans le forum Outils
    Réponses: 5
    Dernier message: 22/08/2002, 10h56
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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