LinuxSir.cn,穿越时空的Linuxsir!

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

Gtk编程问题:使工具栏像gnome的面板一样能自动隐藏到顶部

[复制链接]
发表于 2011-5-1 01:03:25 | 显示全部楼层 |阅读模式
用gtk做一个界面,有菜单栏,工具栏和一个drawingarea。
想得到如下功能:点击“全屏”按键后,除了drawingarea之外其他widget都不显示;但是当鼠标靠近屏幕顶部的时候,工具栏会像gnome的面板(属性设置为“自动隐藏”)一样出现,当鼠标离开顶部一段时间后,工具栏又隐藏了。

我试着对工具栏使用gtk_widget_hide()和gtk_widget_show(),但是不理想:
1、工具栏的出现和消失会影响到drawingarea的大小,使里面的东西突然缩放;
2、工具栏没有渐出和渐入屏幕的效果

请问大家,要实现这样的功能该如何做呢?
 楼主| 发表于 2011-5-1 12:13:37 | 显示全部楼层

问题解决了一点

1、用GTK_WINDOW_POPUP创建一个新的窗口,用来装全屏时候要显示的工具栏;
2、建一个新的工具栏(事实上全屏时候的工具栏应该和平时的不同,至少要多一个“退出全屏”按钮),并装入上面的新窗口中;
3、全屏的时候对新的窗口做相应的显示和隐藏。

这样,全屏时候鼠标移到屏幕顶端就会有工具栏出现,此时的drawingarea并不会改变大小。但是还是没有达到工具栏渐入渐出的效果。
回复 支持 反对

使用道具 举报

发表于 2011-5-3 09:43:59 | 显示全部楼层
要实现渐入渐出效果的话,需要用到cairo,我记得我有发过一篇用cairo写动画的帖子。
回复 支持 反对

使用道具 举报

发表于 2011-5-18 23:25:43 | 显示全部楼层
或许可以通过手动移动popup窗口的位置的方式来做这个简单的动画。

可以参考totem播放器里面全屏时的部分代码。
回复 支持 反对

使用道具 举报

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

本版积分规则

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