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 :

déplacer le curseur dans un gtkentry


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 72
    Par défaut déplacer le curseur dans un gtkentry
    bonjour à tous

    j'ai un petit problème avec le curseur dans une zone de saisie (gtkentry en gtk3)

    je veux saisir deux chiffre avec le clavier et lors de la saisie du 2ème chiffre je veux faire apparaître sans les saisir deux points de suspension ":", puis saisir deux autres chiffres (exemple final: 18:16)

    donc je récupère le contenu qui a été saisie(les 2 premiers chiffres) puis je lui ajoute les 2 points ":" avec gtk_entry_set_text(GTK_ENTRY(pEntry),g_strdup_printf("%s:",gtk_entry_get_text(GTK_ENTRY(pEntry))));

    mais là le curseur ne se met pas à la fin pour que je saisisse les deux autres chiffres !

    il se positionne (pour une raison qui m'échappe) avant les 2 points de suspension, ce qui m'oblige à le déplacer avec la touche DROITE

    pourriez-vous m'aider, s'il vous plaît, à trouver comment déplacer ce curseur à la fin de la zone de saisie ?

    j'ai essayé avec gtk_editable_set_position(GTK_EDITABLE(pEntry),3); mais ça ne marche pas

    merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Salut
    D'abord fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        g_signal_connect(G_OBJECT(<My_Entry>, "insert-text", G_CALLBACK(my_insert_text),NULL);
    Et la fonction my_insert_text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void my_insert_text(GtkEditable *editable, gchar *new_text, gint new_text_length, gint * position, gpointer user_data)
    {
        gchar *chars = gtk_editable_get_chars(editable, 0,-1);
     
         if (strlen(chars) == 1)
        {
            g_signal_handlers_block_by_func (editable, (gpointer) my_insert_text, user_data);
            gtk_editable_insert_text(editable, new_text, 1, position);
            gtk_editable_insert_text(editable, ":", 1, position);
            g_signal_handlers_unblock_by_func (editable, (gpointer) modifer_texte, user_data);
            g_signal_stop_emission_by_name (editable, "insert-text");
        }
        g_free(chars);
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 72
    Par défaut Explications
    merci pour votre aide

    j'ai dû remplacer modifer_texte par my_insert_text pour que ça marche

    mais, s'il vous plaît, est-ce que vous pouvez m'expliquer comment ça marche ?

    merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par lenas_tshaleb Voir le message
    merci pour votre aide

    j'ai dû remplacer modifer_texte par my_insert_text pour que ça marche

    mais, s'il vous plaît, est-ce que vous pouvez m'expliquer comment ça marche ?

    merci d'avance
    Oui, erreur de copier/coller

    Pour l'explication, et bien, avant que le caractère tapé par l'utiisateur ne soit validé, on le passe à une fonction de test (on a programmé l'évènement "insert-text").
    Si on voulait annuler le caractère, il suffirait de faire *new_text = 0, (celà permet par exemple de forcer la saisie de caractères numériques).
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. [VBA] Déplacer le curseur dans internet explorer
    Par borzun dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/07/2014, 10h30
  2. Garder le curseur dans un gtkEntry
    Par zerimbak dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 20/04/2011, 22h19
  3. déplacer le curseur dans un widget text
    Par vincent.mbg dans le forum Tkinter
    Réponses: 5
    Dernier message: 19/08/2009, 12h33
  4. déplacer le curseur dans liste déroulante
    Par christian ler dans le forum Access
    Réponses: 2
    Dernier message: 08/01/2007, 09h51
  5. Déplacer le curseur à une position voulue dans un textarea avec IE
    Par spirou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2006, 14h23

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