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 :

comment connecter les curseurs sous gtk-3


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut comment connecter les curseurs sous gtk-3
    Bonjour,
    j'ai écris un main.c qui ouvre une fenêtre.ui écrite en xml

    la fenêtre s'ouvre comme je veux, les cliques sur les boutons lancent les fonctions que je place avant le main comme je l'entends. En exemple pour un bouton
    button = gtk_builder_get_object (builder, "button34");
    g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);

    Mais voila, quoique je fasse, je n'arrive pas à connecter mes curseurs au main ?

    voici comment j''écris mes curseurs dans le fichier xml :

    <object class="GtkAdjustment" id="adjustment1">
    <property name="lower">17</property>
    <property name="upper">80</property>
    <property name="value">17</property>
    <property name="step_increment">1</property>
    <property name="page_increment">10</property>
    </object>

    <child>
    <object class="GtkVScale" id="vscale1">
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="adjustment">adjustment1</property>
    <property name="inverted">True</property>
    <property name="round_digits">1</property>
    </object>
    </child>

    Est-ce que quelqu'un sait comment faire ?

    Cordialement

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut
    Un petit up !
    La fonction se lance qu'une seule fois puis freeze
    Je connecte le main à la fenêtre xml avec :
    button = gtk_builder_get_object (builder, "vscale1");
    g_signal_connect (button,
    "value-changed",
    G_CALLBACK (curseur_jo1),
    draw_value);

    puis je récupère la valeur int que en pr&paration de l''envoie en argument dans une fonction extérieur avec
    static void curseur_jo1 (GtkRange *range)
    {
    gdouble po1 = gtk_range_get_value (range);
    jo1 = (int)(po1);
    }

    Au clique sur un bouton j'envoie tous mes paramètres à la fonction extérieur, je ne sais pourquoi, je ne peux cliquer qu'une seule fois

    button = gtk_builder_get_object (builder, "button2");
    g_signal_connect (button, "clicked", G_CALLBACK (jouer_melodie), NULL);

    envoie sur

    void jouer_melodie ()
    {
    system(xxx.sh xxxx &);
    }

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Bonjour,

    en fait ta question est difficile à comprendre parce que tu n'es pas à l'aise avec la terminologie à employer (qu'est ce que tu appelles "curseur" par exemple ?). Ça, couplé à l'absence des morceaux de code qui montrent réellement ce que tu fais ne nous facilite pas la tâche pour t'aider. Mais dans le cas de ton problème de clic qui ne fonctionne qu'une fois, la raison est simple: la fonction system est bloquante, et empêche GTK de reprendre la main. Utilise plutôt g_spawn_command_line_async ou g_spawn_async.

    Au passage,GtkVScale a été déprécié dans GTK 3.2, il faut utiliser GtkScale à la place, en indiquant l'orientation.

    Ensuite, ta callback ne respecte pas la signature du signal GtkRange::value-changed, qui est (comme indiqué dans la documentation):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void user_function (GtkRange *range, gpointer  user_data)
    De plus, je ne vois pas dans ta callback curseur_jo1 ce que tu fais de ta variable jo1 après l'avoir remplie...

Discussions similaires

  1. comment connecter une webcam sous builder c++
    Par mouchie82 dans le forum C++Builder
    Réponses: 30
    Dernier message: 22/07/2011, 11h28
  2. Comment installer les packages sous Fedora sur une machine non connecter ?
    Par gemo1485 dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 20/06/2009, 08h45
  3. [Tomcat]comment compiler les servlets sous eclipse et tomcat
    Par boussaad dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 31/03/2005, 15h29
  4. [RMI]comment creer les stubs sous eclipse(lancement de rmic)
    Par juflata dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/06/2004, 13h51
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

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