LinuxSir.cn,穿越时空的Linuxsir!

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

GTKENTRY为什么总要获得焦点,能控制其不获得么

[复制链接]
发表于 2010-3-17 14:08:15 | 显示全部楼层 |阅读模式
大家好,这个问题不太好描述,还是希望能得到大家的帮助。
GTK中的输入框一般都会自动获得焦点,比如当已有一个输入框的情况下再出现一个输入框时它一般会得到焦点导致之前的输入框失去焦点,请问能控制不让它自动获得焦点么。

谢谢

[目前我这个问题是在DirectFB下才遇到的,没有WM的时候它会带来一些问题]
发表于 2010-3-17 15:27:55 | 显示全部楼层
我想,您提的是个伪问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-17 15:58:38 | 显示全部楼层
谢谢回复。

恩,呵,差不多,而且有点矛盾。

我这边有个控件和ENTRY行为方式基本一样但它并不需要输入文字,我看了下它的代码结构也基本和ENTRY类似,所以想问下能否改变。

还有,一般普通的窗口在新建显示时可以不影响到其他程序吗,就是它可以不去获取焦点吗?
回复 支持 反对

使用道具 举报

发表于 2010-3-17 16:52:55 | 显示全部楼层
新窗口总是试图获得焦点的。因为它挡住了其他窗口,所以其他窗口上的焦点就肯定失去了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-17 17:13:54 | 显示全部楼层
那如果新窗口不会挡住原来的窗口呢,只是在其他地方显示也不能让它不得焦点吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-17 17:15:59 | 显示全部楼层
还有,我还想问下如果一个窗口设置为modal类型,那当一般非modal窗口打开时它的焦点就不会失去了么,还是也会失去呢?

非常感谢。
回复 支持 反对

使用道具 举报

发表于 2010-3-17 18:03:44 | 显示全部楼层
当一个窗口处于被激活状态,其他窗口必然处于失去焦点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-18 08:58:09 | 显示全部楼层
谢谢,那为什么modal类型的窗口能阻止被其他窗口覆盖呢?     它是先失去焦点再得到的还是一直没失去呢?
回复 支持 反对

使用道具 举报

发表于 2010-3-18 10:54:33 | 显示全部楼层
这个是窗口管理器保证的,GTK也通过gtk_grab_add部分的参与其中。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-18 15:09:16 | 显示全部楼层
谢谢,我的刚刚就是没有WM,请问我能用什么策略来实现窗口管理器的这个功能吗?

我所遇到的情况在有WM时是正常的,但没有WM的时候就不行了。

现在我在尝试去掉一些FOCUS IN/OUT有关的信号或者信号处理,但会报错,好像这样导致它行为紊乱了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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