1

当一个新GtkTreeView的被暴露时,人们会发现它处于一种没有显示任何光标的状态。一旦聚焦,光标就在那里,即使失去焦点。我正在寻找一种方法来按需摆脱光标。

GTK+ 参考声称,gtk_tree_view_set_cursor只要GtkTreePath*参数对GtkTreeView*. 术语“无效”可以有多种解释。我尝试了许多可能性,结果介于段错误和完全没有效果之间。因此我想问:

Q1:是否可以取消设置 GtkTreeView 上的光标?

Q2:如果是这样,请您提供一个简单的例子,最好是纯C?

4

2 回答 2

3

作为记录:

我试过用gtk_tree_view_set_cursor()没用。

无论如何,您可以取消设置GtkTreeViewusing的光标,gtk_tree_view_get_selection()然后调用gtk_tree_selection_unselect_all()结果GtkTreeSelection

于 2014-10-03T23:22:57.497 回答
0

我不知道我是否正确理解了您的问题,但我相信我可以提供帮助。

首先,文档说:

如果路径对模型无效,则当前光标(如果有)将被取消设置,并且函数将返回而不会失败。

所以术语 invalid 是指GtkTreeModel的无效路径。

无论如何,它还说“此功能通常后跟 gtk_widget_grab_focus (tree_view),以便将键盘焦点赋予小部件”。我不知道您是否尝试过,因为您说“即使失去焦点”,但也许使用gtk_widget_grab_focus将焦点交给另一个小部件会解决您的问题。

于 2012-07-30T02:02:33.143 回答