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 :

Validation d'un CellRendererText [Sources]


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Avril 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 49
    Par défaut Validation d'un CellRendererText
    Plop les amis,

    je reviens encore avec une question bizarre a laquelle je pense que vous allez a nouveau avoir tu mal a repondre ^^

    J'explique :

    je mamipule plusieur GtkTreeView avec des cellule du type Text , donc avec un GtkCellRendererText.

    Ce que je narrive pas a faire c'est lorsque je commence a editer une cellule et que je passe sur un autre treeview a l'aide de ma souris , le cell render reste sur l'etat d'edition. Je suis oblige d'appuiyer sur la touche entrer pour valider mon text entree.
    Mais j'aimerais que des aue je change de treeview la cell avec sa valeur soit valider. Le probeleme est que je ne trouve pas de fonction permettant de faire ca.

    gtk_cell_renderer_stop_editing n'arrange en rien ce probleme. En faite il se passe rien quand j'utilise cette fonction.

    Voila si vous savez comment faire dite le moi. Merci d'avance.

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Salut

    Citation Envoyé par jean
    je reviens encore avec une question bizarre a laquelle je pense que vous allez a nouveau avoir tu mal a repondre ^^
    Ce qui serai sympa c'est d'avoir un p'tit bout de code pour que l'on puisse faire des testes sans avoir à se taper la construction d'une mini appli

    Citation Envoyé par jean
    gtk_cell_renderer_stop_editing n'arrange en rien ce probleme. En faite il se passe rien quand j'utilise cette fonction.
    C'est pourtant celle qui semble convenir, utilise un signal pour savoir quand la souris sort du widget ? Le signal est bien traité ?

  3. #3
    Membre averti

    Inscrit en
    Avril 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 49
    Par défaut
    Le truc c'est que schematise le probleme , mais le context est beaucoup plus complique que ca.....je suppose que si je balance quelques milliers de lignes de codes ca va pas plaire ni a vous ni a mon patron qui risque de me virer pour ca

    Le probleme avec gtk_cell_renderer_stop_editing c'est qu'aparrement ca permet de lancer le signal mais cest tout. Le probleme viens pas de la capture du signal, il vient de savoir quelle fonction il faut utiliser pour deselectionner un cellrenderer ou un cellrenderercombo en cours d'edition.

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par jean
    Le truc c'est que schematise le probleme , mais le context est beaucoup plus complique que ca.....je suppose que si je balance quelques milliers de lignes de codes ca va pas plaire ni a vous ni a mon patron qui risque de me virer pour ca
    C'est pas ce que je demande, juste une fenêtre avec unGtkTreeView contenant des GtkCellTextRenderer et les callback nécessaire. Tu as juste à copier coller des bouts de ton code, je ne pense pas que ton patron te vire pour ça surtout si ça nous permet de te donner la réponse plus rapidement

    Citation Envoyé par jean
    Le probleme avec gtk_cell_renderer_stop_editing c'est qu'aparrement ca permet de lancer le signal mais cest tout. Le probleme viens pas de la capture du signal, il vient de savoir quelle fonction il faut utiliser pour deselectionner un cellrenderer ou un cellrenderercombo en cours d'edition.
    Oui mais vu la description de la fonction, elle semble convenir donc je me pose la question si elle est bien appelée au moment opportun.

    Sinon tu as essayé en enlevant le focus du GtkCellRendererText ? http://developer.gnome.org/doc/API/2...get-grab-focus

  5. #5
    Membre averti

    Inscrit en
    Avril 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 49
    Par défaut
    Sa y es finalement apres 4 heures de recherche jai trouve la solution...

    Je suis a nouveau dans mon etat habituel de fin de recherche -->

    Alors c'est un peu un truc a la con et pas facile a trouver. Peut etre il y en a une autre , si jamais des gens passent par la qu'il hesite pas a la poser.

    Alors la premiere chose a faire est attacher le signal "editing-started" de cell renderer au cell renderer en question. L'entete est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     void        user_function      (GtkCellRenderer *renderer,
                                             GtkCellEditable *editable,
                                             gchar           *path,
                                             gpointer         user_data)
    Ce qui nous permet de recuperer le GtkCellEditable , la cle du probleme est ici :-). Donc j'ai pas trouve d'autre choix que de creer une variable global pour le garder de cote.

    Il faut egalement attacher le signal de fin "edited" toujours au meme cell renderer. Je ne met pas l'entete il n'y a rien de particulier a signaler.

    Dans le callback associe au signal de fin de l'edition il suffit d'utiliser la fonction suivante : gtk_cell_editable_remove_widget(variable_global). La variable global c'est le GtkCellEditable recupere dans la fonction lancer par le signal "editing-started". e qui va se passer c'est que cette fonction va detruire le GtkEntry cree lorqu'une edition est faite. ce qui va stopper l'edition.

    Le fonctionnement de GTK est le suivant : lorsque l'on a un cell editable et que l'on commence a editer , GTK va creer une entry sur la cell du treeview pour permettre a l'utilisateur de rentrer du text. Donc c'est pour ca que pour stopper l'edition il faut utiliser cette fonction de destruction. Avant la destruction la fonction va signaler que l'edition est fini : Emits the "remove_widget" signal. This signal is meant to indicate that the cell is finished editing, and the widget may now be destroyed.

    Et donc notre cellule du treeview va retrouver son aspect standart.

    Alors a part utiliser ue variable global je vois pas comment recuperer le GtkCellEditable donc si vous trouver comment faire merci de me l'indiquer car les variables globales moin il y en a et mieux c'est ^^.

    Voila merci a jean de m'avoir donne la solution , comme d'habitude il est toujours trop fort.

    Jean : oui je sais je sais mais j'aime pas me vanter

    Mais si tu peux..

    Jean : non non je ne me permettrait pas


    EDIT : on a poste en meme temps gege , mais pour repondre a ta question , le grab_focus comme le set_cursor ou tout autres fonction du genre ne servent a rien pour se probleme.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par jean
    EDIT : on a poste en meme temps gege
    Oui sauf qu'il y en a un qui est plus efficace que l'autre

    Merci pour la solution

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

Discussions similaires

  1. test et validation de votre programme!!!
    Par l'indien dans le forum C
    Réponses: 8
    Dernier message: 25/06/2003, 15h43
  2. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  3. est ce un XSchema Valide?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 06/03/2003, 14h01
  4. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  5. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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