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 :

[GTK+] Event Bouton appuyé


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut [GTK+] Event Bouton appuyé
    Bonjour,
    J'ai une question con auquel google (mon ami) et la fonction recherche de ce forum (une autre amie) n'ont pas su me répondre.

    J'ai un bouton qui, quand on clique dessus fait
    i++;
    Un autre qui fait
    i--;
    Ils sont tout deux connectés par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_signal_connect( ... "clicked"...)
    Je voudrais savoir si on peut les connecter à un second signal du type "rester appuyer"? Si oui quel est le nom du signal?

    En gros mon bouton est bien joli mais j'aimerais éviter de cliquer dessus 100 fois pour que i=100.

    Merci

  2. #2
    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
    Regarde si tu ne trouves pas ton bonheur du côté du signal GtkWidget::button-press-event. Mets des traces pour voir s'il est appelé plusieurs fois si tu restes appuyé. Si ce n'est pas le cas, alors utilise un variable qui te dit si tu dois incrémenter ou pas:

    gboolean do_increment = FALSE;

    Quand GtkWidget::button-press-event est déclenché, lance un timer (g_timeout_add) qui se déclenche toutes les n millisecondes pour incrémenter ta variable. Conserve la valeur de retour de g_timeout_add, tu en auras besoin.

    Connecte aussi le signal GtkWidget::button-release-event. Quand il se déclenche, récupère l'id que t'a renvoyé g_timeout_add, et détruis la source d'évènement timeout avec g_source_remove.

    En modulant la durée du timeout tu pourras jouer sur la vitesse d'incrémentation de la variable. Mais en même temps, à moins que ce ne soit un exemple pédagogique, tu ferais mieux d'utiliser un GtkSpinButton...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Merci ça m'a l'air un peu compliqué, je pensais à un bête nom de signal mais a priori ca existe pas tel quel.
    Donc du coup je vais peut être me rabattre sur un GtkSpinButton comme t'as dis.
    Dommage

    Merci pour ton aide!

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    La solution de liberforce est la seule viable pour que tu évites de cliquer 100x sur le bouton (mais faut voir le contexte d'utilisation). Un SpinButton, pour arriver à 100 tu devras quand même cliquer 100x sur les flèches (à moins que tu entre le chiffre dans la zone de saisie si tu la bloque pas en lecture seule) mais après il faut voir le tout dans le contexte, que veux-tu faire de ca ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    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
    Bin il y a p'têt une autre solution avec d'autres signaux, mais je ne sais pas lesquels... C'est ce que j'ai vu de mieux, mais je suis pas expert GTK non plus. Et pour le spinbutton, je crois que tu peux reste appuyé dessus pour augmenter le nombre en question. Ça peut être intéressant de regarder comment ça a été implémenté...

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Je vais peut être écrire une bêtise mais il existe les signaux "pressed" et "released".
    Tant que le bouton reste appuyé le signal "pressed" est activé et inversement pour l'autre.

    A tester...

Discussions similaires

  1. GTK+ Un bouton dans un onglet
    Par garagou dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 09/04/2015, 22h58
  2. sandbox security event bouton accept ou non?
    Par headmax dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 13/03/2012, 01h53
  3. Détecter chaque bouton appuyé+temporisation
    Par razaonce dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/07/2011, 11h37
  4. [GTK+] Event Mouse coordonnée
    Par Skarsnick dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 19/02/2010, 16h51
  5. Gérer les events d'un tableau de boutons
    Par lord_kalipsy dans le forum wxWidgets
    Réponses: 7
    Dernier message: 20/10/2004, 10h13

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