notebook里的子项自动获取焦点问题

发布于 2022-07-31 03:10:50 字数 114 浏览 9 评论 6

当点击notebook里不同页面时,都是页面里的第一个子项获得焦点,请问如何让别的选项先获得焦点?
谢谢!

补充:获取焦点的函数都试过了,好像不是函数的问题,只有在notebook里不好用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

暖树树初阳… 2022-08-03 17:21:46

谢谢啦~

笑梦风尘 2022-08-03 16:18:56

原帖由 steven820218 于 2007-10-19 09:28 发表
非常感谢,问题解决了,是否是因为g_signal_connect _after()在notebook默认处理完焦点之后再按照我们的意图设置焦点?
而g_signal_connect()是先按照我们的意图设置焦点然后再按照notebook默认处理焦点?
不 ...

是这样的。我在上面的贴子中说反了,已经进行修改。

暗喜 2022-08-03 14:34:17

非常感谢,问题解决了,是否是因为g_signal_connect _after()在notebook默认处理完焦点之后再按照我们的意图设置焦点?
而g_signal_connect()是先按照我们的意图设置焦点然后再按照notebook默认处理焦点?
不知道我理解的对不对?

皇甫轩 2022-08-02 17:17:03

原帖由 steven820218 于 2007-10-18 10:18 发表
非常感谢,但是又出现了新问题,当在第一个页面里点击某个widget改变焦点时,点击其他页面然后再返回第一个页面时,焦点会自动移到下一个widget上,而不是留在gtk_widget_grab_focus(widget)中的widget上。

看起来还要让我们的焦点设置(gtk_widget_grab_focus)发生在 notebook 的焦点设置之后行才可以,所以应该用 g_signal_connect_after() 来连接 switch-page 信号和它的处理函数。

[ 本帖最后由 whyglinux 于 2007-10-21 00:34 编辑 ]

拒绝两难 2022-08-02 03:42:27

非常感谢,但是又出现了新问题,当在第一个页面里点击某个widget改变焦点时,点击其他页面然后再返回第一个页面时,焦点会自动移到下一个widget上,而不是留在gtk_widget_grab_focus(widget)中的widget上。

思念满溢 2022-08-01 08:33:40

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 );

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文