2010-04-27 11 views
0

Assez simple question, j'ai un widget GtkEntry que je veux définir pour être modifiable. Je sais que la fonction que je devrais utiliser est:Comment définir le texte modifiable dans GtkEntry

gtk_editable_set_editable 

Mais je ne sais pas comment faire prendre un widget GtkEntry comme argument

Voici le code que je utilise:

GtkWidget *TextEntry; 
TextEntry = gtk_entry_new(); 

gtk_entry_set_visibility(GTK_ENTRY(TextEntry), TRUE); 
gtk_entry_set_editable(GTK_ENTRY(TextEntry), TRUE); 
gtk_entry_set_overwrite_mode(GTK_ENTRY(TextEntry), TRUE); 
gtk_widget_set_can_focus(GTK_WIDGET(TextEntry), TRUE); 
gtk_widget_grab_focus(TextEntry); 

panel_applet_request_focus(applet, 10); 
gtk_container_add (GTK_CONTAINER (applet), TextEntry); 

gtk_widget_show_all (GTK_WIDGET (applet)); 

En ce qui concerne la mise au point du clavier, je pense avoir besoin de la fonction panel_applet_request_focus(). Il faut que je lui passe l'applet en question et l'horodateur de l'événement déclenchant le focus de la fenêtre

Je ne sais pas quoi mettre pour l'horodatage. J'ai compilé le code comme ci-dessus et je ne peux toujours pas me concentrer sur le clavier lorsque je clique sur l'applet.

Répondre

3

Effectuez les opérations suivantes:

GtkWidget* entry = gtk_entry_new(); 
gtk_entry_set_editable(GTK_ENTRY(entry), TRUE); 

Bienvenue dans le monde de GObject :)

Notez que si vous utilisiez gtk_editable, vous devez faire:

gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); 
+0

@SB: A fait cela, entraînant l'erreur suivante: erreur: impossible de convertir 'GtkEntry *' en 'GtkEditable *' pour l'argument '1' à 'void gtk_editable_set_editable (GtkEditable *, gboolean)' – paultop6

+0

C'est bizarre. Les documents indiquent que GtkEntry implémente GtkEditable. Avez-vous essayé le gtk_entry_set_editable obsolète pour voir ce qui se passe? –

+0

c'est daft, mais que voulez-vous dire par déprécié? – paultop6