设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
关于gtk控件获得、失去焦点问题(已解决--折中办法) ...
返回列表
查看:
1648
|
回复:
2
关于gtk控件获得、失去焦点问题(已解决--折中办法)
[复制链接]
jetking
jetking
当前离线
积分
561
IP卡
狗仔卡
发表于 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还是被选中的,从界面上看,这时有两个被选中的控件。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
jetking
jetking
当前离线
积分
561
IP卡
狗仔卡
楼主
|
发表于 2008-4-16 17:18:21
|
显示全部楼层
还是自问自答吧
研究了一下午,没找到让控件失去焦点的方法,本意是让gtk让出焦点,由自己的程序控制。在没有找到方法的情况下,只好让eventbox加入到gtk的可聚焦控件中去,默认的eventbox是不可聚焦的,使能函数查一下devhelp就知,我是用glade来设置的。
这样也算是部分解决吧!
回复
支持
反对
使用道具
举报
显身卡
remote fish
remote fish
当前离线
积分
704
IP卡
狗仔卡
发表于 2008-4-16 19:15:56
|
显示全部楼层
再提供一个思路吧, 添加一个大小为 0 或者位置在显示区域之外的控件, 当 eventbox 需要显示焦点时就把焦点放在它身上, 不知道行不行. 我不会 gtk 编程, 仅仅是茶余饭后的消遣, 答得不对尽管忽略好了
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表