禁用GtkTreeView的交互式搜索弹出窗口

时间:2014-04-29 21:02:21

标签: python gtk gtk3 gtktreeview

在GtkTreeView上键入Ctrl-F可以弹出一个可以插入搜索词的弹出窗口。 我想禁用此弹出窗口,因为我想将Ctrl-F用于其他目的。 此外,显示的数据量非常大,因此在弹出窗口中输入内容会冻结整个应用程序几秒钟。

This没有回答这个问题,因为gtk_tree_view_set_enable_search()的文档声明:

Note that even if this is FALSE, the user can still
initiate a search using the “start-   interactive-search” key binding.

我尝试了以下操作而没有任何明显的效果:

  • gtk_treeview_set_enable_search(false)
  • gtk_treeview_set_search_column(-1)
  • 连接到start-interactive-search并返回True以进行"处理!"。

我正在使用Gtk + -3.12。

任何提示?

1 个答案:

答案 0 :(得分:1)

解决了它。

使用gtk_binding_entry_remove()取消绑定TreeView上的Ctrl-F,或者使用 以下内容:

css_provider = Gtk.CssProvider()
css_provider.load_from_data("""
    @binding-set unbind_search { unbind "<Control>f"; }
    GtkTreeView { gtk-key-bindings: unbind_search; }
""".encode('utf-8'))
context = Gtk.StyleContext()
context.add_provider_for_screen(
    Gdk.Screen.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER
)