2016-02-26 1 views
0

Je travaille avec essayer de définir un bouton comme défaut dans un programme de sorte que dès que les données sont entrées dans les zones de saisie, l'utilisateur doit simplement appuyer sur Entrée pour continuer au lieu de faire glisser le souris ou tabulation maladroitement.widget pas dans une fenêtre Gtk

Mon code pour cela est:

gtk_entry_set_activates_default(__w_passwdEntry, true); 
gtk_entry_set_activates_default(__w_uNameEntry, true); 
gtk_widget_set_can_default(GTK_WIDGET(__w_loginBtn), true); 
gtk_widget_grab_default(GTK_WIDGET(__w_loginBtn)); 

et je reçois une erreur sur la dernière ligne, l'erreur se lit comme suit:

(app_name:2345): Gtk-WARNING **: gtkwidget.c:6796: widget not within a GtkWindow 

Comment puis-je sur l'association sur le bouton avec une fenêtre? Et comment puis-je déterminer ce que la fenêtre dont je devrais associer le bouton est?

J'ai créé les bases de l'interface graphique dans Glade et je travaille à tout faire en dehors de la mise en page dans le code.

Répondre

0

trouvé une réponse, utilisée g_signal_connect liée à « activer »:

g_signal_connect(__w_uNameEntry, "activate", G_CALLBACK(*credentialsCheck), NULL); 
g_signal_connect(__w_passwdEntry, "activate", G_CALLBACK(*credentialsCheck), NULL); 

Où credentialsCheck() est la fonction liée à la fonction de rappel du bouton de connexion. Donc ce n'est pas une solution parfaite mais ça marche pour le moment.