覆盖GTK工具栏/小部件

时间:2013-01-17 22:30:14

标签: widget gtk overlay cairo gtk2

我正在使用GTK + 2.0和Cairo在C中编写自定义应用程序。仅用于学习目的(如果成功,然后用于部署),我希望重新创建类似于覆盖工具栏/窗口小部件(我很抱歉,如果术语不正确),当鼠标移动到窗口上的给定区域时出现,当鼠标移开时消失。正如我想象的那样,工具栏应该出现在现有小部件的顶部,而不会替换它们或以任何方式改变小部件包装。有可能完成吗?如果是,请您指出相关的教程/示例和/或概述一种方法来做同样的事情? 提前谢谢。

2 个答案:

答案 0 :(得分:6)

不确定这在GTK2中很容易实现。但是,我最近了解到GtkLayout小部件允许像素精确呈现小部件,因此您甚至可以显示某些小部件而不是其他小部件。或者您可以实现自己的容器小部件。

请注意,自GTK3以来,GtkOverlay似乎可以满足您的需求。

你也可以看看Clutter,它可能会允许这样做。此外,有一些项目将GTK和Clutter合并为GTK 4。

答案 1 :(得分:2)

鲜为人知的GtkHandleBox能够做你想做的事。我必须警告你,它在GTK + 3中被弃用,因为它违背了通常的UI方向。此外,正确的定位将受到Windows经理怪癖的影响,因此我希望在这方面存在一些问题。