我創建了一個複合小部件,其中webkit_webview小部件存儲在帶有gtkvbox基本小部件的scrollwed窗口中。如果任何包含的小部件具有焦點,那麼如何使基本gtkvbox小部件處於焦點狀態?具體來說,我正在嘗試添加只有在複合控件處於焦點時才處於活動狀態的加速器。要確定複合控件是否處於焦點狀態,我調用gtk_widget_get_focused(),然後遍歷控件父項來查找基礎控件。似乎應該有更好的方法。gtk複合小部件焦點
3
A
回答
1
一次只有一個小部件可以具有全局輸入焦點,這是用戶在屏幕上看到的焦點以及擊鍵的出現位置。如果gtk_widget_has_focus(widget)
返回TRUE
那麼widget
具有全局輸入焦點。您不能讓webview和vbox同時擁有全局輸入焦點。
你可以做的是在複合控件的父級上調用gtk_container_get_focus_child()
,如果返回值是你的複合控件,那麼焦點位於複合控件的某個位置。
或者您可以連接到複合小部件上的"focus-in-event"
和"focus-out-event"
信號。我相當肯定,當其中一個包含的小部件獲得或失去焦點時,它們會通知您。 (請記得先在你的小部件上打電話gdk_window_set_events(widget->window, gdk_window_get_events(widget->window) | GDK_FOCUS_CHANGE_MASK)
,正如GTK文檔中所解釋的那樣)。
相關問題
- 1. Gtk焦點的歷史?
- 2. 禁用tkinter小部件的焦點?
- 3. 使Tkinter小部件成爲焦點
- 4. 搜索gtk小部件
- 5. 堆疊GTK +小部件
- 6. GTK聚焦事件
- 7. GWT複合小部件
- 8. 如何複製或複製gtk小部件?
- 9. 哪個GTK小部件組合可用於小部件的可滾動列?
- 10. gtk#在按鈕上點擊添加小部件點擊
- 11. 處理複合小部件的事件
- 12. pygtk - 動態更新從gtk組合框輸入的小部件
- 13. 有沒有好的方法來複制一個Gtk小部件?
- 14. Android小工具:關注焦點,點擊效果部件
- 15. 如何在點擊外面隱藏Gtk小部件?
- 16. Gtk#+ MonoDevelop:如何彈出按鈕點擊自定義小部件
- 17. GTK#在點擊窗口小部件時刪除initialText
- 18. JTable - 複合編輯器焦點
- 19. gtk +:GtkFileChooserDialog隱藏一些小部件
- 20. Gtk小部件出現延遲
- 21. Glade GTK訪問個別小部件
- 22. Gtk +編程風格:定義小部件
- 23. 爲GTK小部件設置WNDCLASS風格
- 24. 在GTK#小部件中使用泛型
- 25. 不在Gtk窗口中的小部件
- 26. 重疊窗口小部件gtk
- 27. 在GTK中訪問小部件+
- 28. 如何旋轉gtk小部件?
- 29. gtk cellrenderer顯示一個小部件
- 30. 撥號/儀表GTK小部件