我創建了一個複合小部件,其中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. 禁用tkinter小部件的焦點?
- 2. 使Tkinter小部件成爲焦點
- 3. 堆疊GTK +小部件
- 4. GTK聚焦事件
- 5. 如何複製或複製gtk小部件?
- 6. 哪個GTK小部件組合可用於小部件的可滾動列?
- 7. gtk#在按鈕上點擊添加小部件點擊
- 8. 處理複合小部件的事件
- 9. pygtk - 動態更新從gtk組合框輸入的小部件
- 10. 有沒有好的方法來複制一個Gtk小部件?
- 11. JTable - 複合編輯器焦點
- 12. 如何旋轉gtk小部件?
- 13. 在GTK中訪問小部件+
- 14. gtk cellrenderer顯示一個小部件
- 15. 在Gtk中堆疊小部件+
- 16. GTK或Qt的圖表小部件
- 17. gtk +:GtkFileChooserDialog隱藏一些小部件
- 18. Gtk小部件指針比較
- 19. 撥號/儀表GTK小部件
- 20. 重疊窗口小部件gtk
- 21. 不在Gtk窗口中的小部件
- 22. GTK下拉日曆小部件?
- 23. Gtk +編程風格:定義小部件
- 24. 創建複合Javascript/HTML「小部件」
- 25. 修復GTK Widget的大小?
- 26. 在gtk文本視圖中移動一個gtk小部件
- 27. 自定義GTK小部件繞過GTK佈局引擎?
- 28. Combobox焦點,殺死組合框焦點
- 29. 自定義背景的Android小部件沒有得到焦點
- 30. 如何將焦點設置爲特定的小部件