2012-07-29 51 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()