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 :

Modifier le texte d'un entry


Sujet :

GTK+ avec C & C++

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2008
    Messages : 164
    Points : 154
    Points
    154
    Par défaut Modifier le texte d'un entry
    Bonjour,

    Je souhaite modifier le texte d'un entry.
    Voici le contexte:
    • Appuis sur un bouton
    • Choix d'un fichier dans la fenetre qui s'ouvre
    • Modification de l'entry avec la nouvelle entrée


    Malheureusement, je n'arrive pas à récupérer l'entry pour le modifier:

    Code : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    #include <gtk/gtk.h>
    #include <string>
     
    using namespace std;
     
    // Déclaration des fonctions
    void quitter(GtkWidget *pButton, gpointer pData);
    void choix (GtkWidget *pButton, gpointer data);
     
    // Programme principal
    int main(int argc,char **argv)
    {
    	GtkWidget* cWindow;
    	GtkWidget* cTable;
    	GtkWidget* cLabel;
    	GtkWidget* cBoutonMenu;
    	GtkWidget* zoneTexte;
    	string home;
     
            gtk_init(&argc,&argv);
     
     
    	///////////////////////// Création de la fenetre ////////////////////////
    	cWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    	gtk_window_set_title(GTK_WINDOW(cWindow), "ECM");
    	gtk_window_set_default_size(GTK_WINDOW(cWindow), 640, 480);
    	 /* fermeture de la fenetre par la croix en haut à droite */
    	 g_signal_connect(G_OBJECT(cWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
    	// Création de la table ou seront affiché les informations
    	 cTable = gtk_table_new(9,4,TRUE);
    	gtk_container_add(GTK_CONTAINER(cWindow), GTK_WIDGET(cTable));
    	/* Creation du label titre*/
    	cLabel=gtk_label_new("ECM");
    	gtk_table_attach_defaults(GTK_TABLE(cTable), cLabel, 0, 9, 0, 1); 
    	/* insertion du bouton choix et de la zone entry*/
    	zoneTexteLatex = gtk_entry_new();
    	gtk_table_attach_defaults(GTK_TABLE(cTable), zoneTexteLatex, 1,7,1,2);
    	cBoutonMenu = gtk_button_new_with_mnemonic("_Choix");
    	gtk_table_attach_defaults(GTK_TABLE(cTable), cBoutonMenu, 7,8,1,2);
    	g_signal_connect(G_OBJECT(cBoutonMenu), "clicked" , G_CALLBACK(choix) , NULL);
     
    	/* insertion du bouton exit */
    	cBoutonMenu = gtk_button_new_with_mnemonic("_Exit");
    	gtk_table_attach_defaults(GTK_TABLE(cTable), cBoutonMenu, 1,8,3,4);
    	g_signal_connect(G_OBJECT(cBoutonMenu), "clicked" , G_CALLBACK(quitter) , NULL);
     
    	/* Affichage de la fenétre et de tout ce qu'elle contient */
    	 gtk_widget_show_all(cWindow);
     
    	gtk_main();
    	//transformpdf();
    	return EXIT_SUCCESS;
    }
     
    void quitter(GtkWidget *pButton, gpointer pData)
    {
    	gtk_main_quit();
    }
     
    void choix (GtkWidget *pButton, gpointer data) {
    	GtkWidget *p_dialog = NULL;
    	GtkWidget *pTempEntry;
    	GList *pList;
    	// Récupération des élèments du tableau
    	pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));
     
    	 // Parametre inutilisé
     	(void)pButton;
    }
    Ce code affiche Gtk__CRITICAL IA__gtk_container foreach: assertion 'GTK_IS_CONTAINER (container)' failed

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Le plus simple dans ton cas est de transmettre le pointeur du GtkEntry au callback choix (); comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_signal_connect(G_OBJECT(cBoutonMenu), "clicked" , G_CALLBACK(choix) , zoneTexteLatex);
    Dans le callback choix (); tu récupères ce pointeur par le dernier argument de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void choix (GtkWidget *pButton, gpointer data) {
            /* Récupération du pointeur sur le GtkEntry */
            GtkWidget *zoneTexteLatex = (GtkWidget*) data;
    
      	GtkWidget *p_dialog = NULL;
    	GtkWidget *pTempEntry;
    	GList *pList;
    	// Récupération des élèments du tableau
    	pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));
     
    	 // Parametre inutilisé
     	(void)pButton;
    }

Discussions similaires

  1. Menu déroulant qui modifie du texte
    Par oxa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/11/2005, 09h20
  2. [FLASH MX2004] Modifier du texte
    Par drizztoli dans le forum Flash
    Réponses: 3
    Dernier message: 28/05/2005, 10h03
  3. Réponses: 5
    Dernier message: 31/01/2005, 09h32
  4. modifier les texte dans un <span>
    Par Flobel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/12/2004, 13h58

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