2012-07-29 49 views
1

當新的GtkTreeView被公開時,發現它處於沒有顯示任何光標的狀態。聚焦後,即使焦點丟失,光標仍在那裏。我正在尋找一種方法來根據需要擺脫遊標。GtkTreeView未設置光標

GTK +參考聲明指出,只要GtkTreePath*參數對於GtkTreeView*無效,函數gtk_tree_view_set_cursor都會執行此作業。術語「無效」可以用許多方式來解釋。我嘗試了許多可能性,結果在段錯誤之間,根本沒有任何影響。因此,我想請問:

Q1:它甚至有可能取消設置光標在GtkTreeView? Q2:如果是這樣,請您提供一個簡單的例子,最好在普通的C語言中使用?

回答

0

我不知道我是否正確理解你的問題,但我相信我可以提供幫助。

首先,在documentation說:

如果路徑是無效的模型,當前光標(如果有的話)將 取消設置和功能將返回而不失效。

所以術語無效將指GtkTreeModel的無效路徑。

無論如何,它也會說「爲了將鍵盤焦點放到窗口小部件上,這個函數經常跟着gtk_widget_grab_focus(tree_view)」。我不知道你是否已經嘗試過,因爲你說過「即使焦點丟失」,但也許把焦點放在另一個與gtk_widget_grab_focus的小工具將解決你的問題。

2

爲了記錄在案:

我試着用gtk_tree_view_set_cursor()無濟於事。

無論如何,您可以使用gtk_tree_view_get_selection()取消設置GtkTreeView的光標,然後在產生的GtkTreeSelection上調用gtk_tree_selection_unselect_all()