notebook里的子项自动获取焦点问题
当点击notebook里不同页面时,都是页面里的第一个子项获得焦点,请问如何让别的选项先获得焦点?
谢谢!
补充:获取焦点的函数都试过了,好像不是函数的问题,只有在notebook里不好用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
当点击notebook里不同页面时,都是页面里的第一个子项获得焦点,请问如何让别的选项先获得焦点?
谢谢!
补充:获取焦点的函数都试过了,好像不是函数的问题,只有在notebook里不好用。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
谢谢啦~
是这样的。我在上面的贴子中说反了,已经进行修改。
非常感谢,问题解决了,是否是因为g_signal_connect _after()在notebook默认处理完焦点之后再按照我们的意图设置焦点?
而g_signal_connect()是先按照我们的意图设置焦点然后再按照notebook默认处理焦点?
不知道我理解的对不对?
看起来还要让我们的焦点设置(gtk_widget_grab_focus)发生在 notebook 的焦点设置之后行才可以,所以应该用 g_signal_connect_after() 来连接 switch-page 信号和它的处理函数。
[ 本帖最后由 whyglinux 于 2007-10-21 00:34 编辑 ]
非常感谢,但是又出现了新问题,当在第一个页面里点击某个widget改变焦点时,点击其他页面然后再返回第一个页面时,焦点会自动移到下一个widget上,而不是留在gtk_widget_grab_focus(widget)中的widget上。
1. 首先禁止 notebook 获得焦点:
GTK_WIDGET_UNSET_FLAGS (notebook, GTK_CAN_FOCUS);
下面的处理皆在 "switch-page" 信号的处理函数中进行:
2. 对于想获得焦点的某一 widget 禁止 "focus" 信号再次传播(防止 notebook 焦点事件产生的干扰):
g_signal_connect( widget, "focus", G_CALLBACK(gtk_true), NULL );
3. 让 widget 获得焦点(要保证 widget 处于当前 page 中):
gtk_widget_grab_focus( widget );