J'ai créé un widget composite avec widget webkit_webview stocké dans une fenêtre scrollwed avec un widget de base gtkvbox. Comment faire pour que le widget gtkvbox de base soit actif chaque fois que l'un des widgets contenus est activé? Spécifiquement, j'essaye d'ajouter l'accélérateur qui devrait seulement être actif quand le widget composé est dans le foyer. Pour déterminer si le widget composite est en focus, j'appelle gtk_widget_get_focused(), et ensuite je parcours le widget des parents pour trouver le widget de base. Il semble qu'il devrait y avoir un meilleur moyen.gtk widget composite focus
Répondre
Un seul widget à la fois peut avoir le focus d'entrée global, qui est le focus que l'utilisateur voit sur l'écran et où les frappes apparaissent. Si gtk_widget_has_focus(widget)
renvoie TRUE
, widget
a le focus d'entrée globale. Vous ne pouvez pas avoir le webview et la vbox ont le focus d'entrée global en même temps. Ce que vous pouvez faire est d'appeler gtk_container_get_focus_child()
sur le parent du widget composite, et si la valeur de retour est votre widget composite, alors le focus est quelque part dans le widget composite. Vous pouvez également vous connecter aux signaux "focus-in-event"
et "focus-out-event"
sur le widget composite. Je suis assez sûr que ceux-ci vous informeront lorsque l'un des widgets contenus gagne ou perd le focus. (N'oubliez pas d'appeler d'abord le gdk_window_set_events(widget->window, gdk_window_get_events(widget->window) | GDK_FOCUS_CHANGE_MASK)
sur votre widget, comme expliqué dans les documents GTK.)
- 1. Gtk par accélérateurs de widget
- 2. Comment changer les couleurs d'un widget arbitraire dans GTK +?
- 3. Gtkmm - "Gtk :: DrawingArea" dans "Gtk :: ScrolledWindow"?
- 4. Client Twitter GTK
- 5. Empiler des widgets dans Gtk +
- 6. Windows.Forms et gtk # interopérabilité?
- 7. C# Gtk NodeView, comment rafraîchir
- 8. Boost Clé composite personnalisée Multi-Index Comparer
- 9. Trouver l'identifiant de fenêtre d'un widget GTK sur Mac OS-X
- 10. gtk Le widget TextView ne se met pas à jour pendant la fonction
- 11. Comment ajouter une page à un widget Notebook Gtk lors de l'exécution?
- 12. Trouver l'emplacement composite sur l'écran
- 13. widget étiquette GWT recevoir le focus lorsque vous appuyez sur la touche tab
- 14. fichiers d'en-tête dans les sous-répertoires (par exemple gtk/gtk.h vs gtk-2.0/gtk/gtk.h)
- 15. Attraper l'événement de défilement dans gtk #
- 16. Comment utiliser le même widget deux fois dans pygtk?
- 17. Utiliser FileChooserButton dans GTK +
- 18. Python GTK MVC
- 19. Empilement de widgets GTK +
- 20. GTK # pièges communs
- 21. PopupMenu à Gtk #
- 22. Natif GTK # sur Windows?
- 23. Implémentation GTK de MessageBox
- 24. presses clés GTK + (gtkD)
- 25. Animations fluides utilisant GTK +
- 26. Détruire Windows dans GTK #
- 27. Widget Fullscreen
- 28. Comment puis-je déterminer le numéro de page de l'onglet sur lequel je viens de cliquer dans gtk #?
- 29. UITextField focus
- 30. Comment cacher une fenêtre Gtk #?