LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1648|回复: 2

关于gtk控件获得、失去焦点问题(已解决--折中办法)

[复制链接]
发表于 2008-4-16 15:20:59 | 显示全部楼层 |阅读模式
gtk内部维护一个逻辑焦点,指定当前的哪个控件被focuse。

可以通过gtk_window_set_focus来使某个控件得到焦点,请问如何让这个焦点失去呢?

要实现这个功能,是因为,打个比方,window内有一个可获得焦点的widget,如spinbutton,还有一个eventbox模拟的checkbox(eventbox下放了一个image,当eventbox接收到enter和leave的信号时,替换eventbox下的image的图片,这样就可以代表选中/没选中,聚焦/不聚焦,2×2共4种状态。),eventbox在gtk内属于不可聚焦控件,这样,当用程序实现eventbox聚焦的效果时,无法把原来被gtk聚焦的spinbutton的焦点失去,spinbutton还是被选中的,从界面上看,这时有两个被选中的控件。
 楼主| 发表于 2008-4-16 17:18:21 | 显示全部楼层
还是自问自答吧

研究了一下午,没找到让控件失去焦点的方法,本意是让gtk让出焦点,由自己的程序控制。在没有找到方法的情况下,只好让eventbox加入到gtk的可聚焦控件中去,默认的eventbox是不可聚焦的,使能函数查一下devhelp就知,我是用glade来设置的。

这样也算是部分解决吧!
回复 支持 反对

使用道具 举报

发表于 2008-4-16 19:15:56 | 显示全部楼层
再提供一个思路吧, 添加一个大小为 0 或者位置在显示区域之外的控件, 当 eventbox 需要显示焦点时就把焦点放在它身上, 不知道行不行. 我不会 gtk 编程, 仅仅是茶余饭后的消遣, 答得不对尽管忽略好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表