当一个新的GtkTreeView被公开时,人们会发现它处于一种没有任何光标显示的状态。一旦聚焦,光标就在那里,即使焦点丢失了。我正在寻找一种方法,以摆脱光标的需求。
GTK+引用声称,每当GtkTreePath*参数对GtkTreeView*无效时,函数gtk_tree_view_set_cursor就会执行该任务。“无效”一词可以从许多方面加以解释。我试验了许多可能性,结果介于分段错误和完全没有效果之间。因此,我想问:
Q1:甚至可以在GtkTreeView上取消一个游标吗? Q2:如果是这样的话,你能提供一个简单的例子,最好是普通的C吗?
发布于 2014-10-03 23:22:57
请记录在案:
我试过使用gtk_tree_view_set_cursor(),但没有效果。
无论如何,您可以使用GtkTreeView取消对gtk_tree_view_get_selection()的游标,然后在结果GtkTreeSelection上调用gtk_tree_selection_unselect_all()。
发布于 2012-07-30 02:02:33
我不知道我是否正确地理解了你的问题,但我相信我能帮上忙。
首先,文档说:
如果path对模型无效,当前游标(如果有的话)将被取消设置,函数将返回,而不会失败。
因此,无效一词指的是GtkTreeModel的无效路径。
无论如何,它还说“这个函数后面通常是gtk_widget_grab_focus (tree_view),以便将键盘焦点放在小部件上”。我不知道您是否尝试过,因为您说过“即使焦点丢失了”,但是也许用焦点将焦点交给另一个小部件会解决您的问题。
https://stackoverflow.com/questions/11712968
复制相似问题