C - 将焦点更改为新的GtkWidget

时间:2014-04-25 23:26:51

标签: user-interface widget gtk focus

我正在为一个IRC客户端开发一个gtk UI。 我想在其中添加以下互动:

  1. 关于用户输入:/ join #channel
  2. 创建一个新标签< - 工作
  3. 专注于它< - 不工作
  4. 我似乎无法在我的笔记本上创建的GtkWidget *上设置焦点(不是输入焦点,视图焦点,如将窗口小部件设置为活动视图)。 我尝试使用grab_focus()函数,但焦点仍然在创建的选项卡上。

    我错过了什么?

1 个答案:

答案 0 :(得分:0)

小部件必须是可聚焦的(gtk_widget_can_focus),否则gtk_widget_grab_focus将不会做任何事情。


此外,没有" view-focus"。您有输入焦点和窗口焦点。

  • 窗口焦点 - 使您的应用程序接收鼠标/键盘事件。
  • 小部件输入焦点 - 如果窗口是焦点,则使小部件接收键盘事件

请注意,此处input表示输入事件(GtkButton通常只处理 Enter ,而GtkScale处理 0 < KBD> 1 2 3 ... 9 + - 并且可以处理 Enter