我有一个包含两个元素的GTK窗口,一个用作搜索输入的条目和一个显示搜索结果的ListBox。当ListBox具有焦点时(例如,用户使用箭头键进行导航),我希望将他们按下的任何字符键引导到搜索输入条目,而不是ListBox。
如果有任何关于重定向某些GTK事件的目标或任何其他方式来处理这种情况的建议,我将不胜感激。我正在使用gtk-rs,但我想任何语言的GTK解决方案都足以让我继续下去。
谢谢!
发布于 2019-04-05 22:07:33
哦,这是一个棘手的问题。您可以修补小部件的事件掩码,并向小部件添加事件处理程序(请参阅https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-add-events
不过,自定义事件处理程序可能是一条陡峭的学习曲线。
发布于 2020-10-28 03:47:57
这正是我在这里要做的:https://github.com/jimmykarily/fuzzygui/blob/7ddb72ad712e7afa5bfcb2d06b435b74caeb8140/main.go#L88
(实际上整个图形用户界面就是你所描述的,如果你真的在尝试实现同样的工具,我也不会感到惊讶:D )。
你所要做的基本上就是连接到主窗口上的事件,并确保你“抓住焦点”在应该处理该事件的元素上。如果是箭头键,则将焦点放在列表框上。如果是其他东西,你可以把注意力放在词条上。我使用GrabFocusWithoutSelecting作为条目,因为GrabFocus在调用它时删除了条目中的文本。
我也以不同的方式处理了"Return“和"Escape”,你可能会发现这也很有用。
https://stackoverflow.com/questions/55425615
复制相似问题